Diferencia entre revisiones de «Lenguaje ensamblador»

Contenido eliminado Contenido añadido
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 201.153.217.21 a la última edición de Richy
Línea 86:
== Ejemplos de lenguaje ensamblador ==
=== Ejemplo 1 ===
El siguiente es un ejempl)ejemplo quedel coincideprograma conclásico ''[[Hola mundo]]'' escrito para la arquitectura de computadorprocesador virtual,[[x86]] o(bajo conjuntoel desistema instruccionesoperativo ISA[[DOS]]).
 
<source lang="asm">
Dir. Etiqueta Instrucción Código máquina[4]
.model small
.begin
.stack
.org 2048
.data
a_start .equ 3000
Cadena1 DB 'Hola Mundo.$'
2048 ld length,%
.code
2064 be done 00000010 10000000 00000000 00000110
2068 addcc %r1,-4,%r1 10000010 10000000 01111111 11111100
programa:
2072 addcc %r1,%r2,%r4 10001000 10000000 01000000 00000010
mov ax, @data
2076 ld %r4,%r5 11001010 00000001 00000000 00000000
mov ds, ax
2080 ba loop 00010000 10111111 11111111 11111011
mov dx, offset Cadena1
2084 addcc %r3,%r5,%r3 10000110 10000000 11000000 00000101
mov ah, 9
2088 done: jmpl %r15+4,%r0 10000001 11000011 11100000 00000100
int 21h
2092 length: 20 00000000 00000000 00000000 00010100
end programa
2096 address: a_start 00000000 00000000 00001011 10111000
</source>
.org a_start
3000 a:</tt
 
=== Ejemplo 2 ===
Ejemplo 3 [editar]Código en lenguaje ensamblador para µC Intel 80C51:
Una selección de instrucciones para una computadora virtual<ref name=wwwPOCA>[http://iiusaedu.com/~murdocca/POCA Principles of Computer Architecture] (POCA) – ARCTools computadora virtual disponible para descarga y ejecución del código, acceso el 24 de agosto de 2005</ref>) con las correspondientes direcciones de memoria en las que se ubicarán las instrucciones. Estas direcciones NO son estáticas. Cada instrucción se acompaña del código en lenguaje ensamblador generado (código objeto) que coincide con la arquitectura de computador virtual, o conjunto de instrucciones [[ISA]].
 
{| class="wikitable"
o del programa clásico ''[[Hola mundo]]'' escrito para la arquitectura de procesador [[x86]] (bajo el sistema operativo
! Dir.
! Etiqueta
! Instrucción
! Código máquina<ref>Murdocca, Miles J. y Heuring, Vincent P.:''Principles of Computer Architecture'' (2000), Prentice Hall, ISBN 0-201-43664-7</ref>
|-
|
|
|<tt>.begin</tt>
|
|-
|
|
|<tt>.org 2048</tt>
|
|-
|
|<tt>a_start</tt>
|<tt>.equ 3000</tt>
|
|-
|<tt>2048</tt>
|
|<tt>ld length,%</tt>
|-
|<tt>2064</tt>
|
|<tt>be done</tt>
|<tt>00000010 10000000 00000000 00000110</tt>
|-
|<tt>2068</tt>
|
|<tt>addcc %r1,-4,%r1</tt>
|<tt>10000010 10000000 01111111 11111100</tt>
|-
|<tt>2072</tt>
|
|<tt>addcc %r1,%r2,%r4</tt>
|<tt>10001000 10000000 01000000 00000010</tt>
|-
|<tt>2076</tt>
|
|<tt>ld %r4,%r5</tt>
|<tt>11001010 00000001 00000000 00000000</tt>
|-
|<tt>2080</tt>
|
|<tt>ba loop</tt>
|<tt>00010000 10111111 11111111 11111011</tt>
|-
|<tt>2084</tt>
|
|<tt>addcc %r3,%r5,%r3</tt>
|<tt>10000110 10000000 11000000 00000101</tt>
|-
|<tt>2088</tt>
|<tt>done:</tt>
|<tt>jmpl %r15+4,%r0</tt>
|<tt>10000001 11000011 11100000 00000100</tt>
|-
|<tt>2092</tt>
|<tt>length:</tt>
|<tt>20</tt>
|<tt>00000000 00000000 00000000 00010100</tt>
|-
|<tt>2096</tt>
|<tt>address:</tt>
|<tt>a_start</tt>
|<tt>00000000 00000000 00001011 10111000</tt>
|-
|
|
|<tt>.org a_start</tt>
|
|-
|<tt>3000</tt>
|
|<tt>a:</tt
|
|}
 
=== Ejemplo 3 ===
Código en lenguaje ensamblador para [[microcontrolador|µC]] [[Intel 8051|Intel 80C51]]:
 
<source lang="asm">
ORG 8030H
T05SEG:
SETB TR0
JNB uSEG,T05SEG ;esta subrutina es utilizada
CLR TR0 ;para realizar una cuenta de
CPL uSEG ;0,5 segundos mediante la
MOV R1,DPL ;interrupción del timer 0.
MOV R2,DPH
CJNE R2,#07H,T05SEG
CJNE R1,#78H,T05SEG
MOV DPTR,#0000H
RET
</source>
 
=== Ejemplo 4 ===
 
Código en lenguaje ensamblador para [[microcontrolador|µC]] [[PIC16F84|16F84]] de [[Microchip (Empresa)|Microchip]]:
 
<source lang="asm">
ORG 0
Inicio
bsf STATUS,RP0
clrf PORTB
movlw 0xFF
movwf PORTA
bcf STATUS,RP0
Principal
movf PORTA,W
movwf Contador
movf Contador,F
btfsc STATUS,Z
goto PuntoDecimal
sublw d'9'
btfss STATUS,C
END
</source>
 
== Referencias ==