ARQ14
ARQ14
ARQ14
Arquitectura de Computadoras
Lenguaje Ensamblador
Se puede utilizar la propia mquina para la
traduccin de los programas escritos con ciertos
caracteres alfabticos comprensibles para el
programador, en una secuencia de unos y ceros
Al grupo alfabtico se le denomina mnemotcnico
La anterior instruccin se podra escribir de la
siguiente forma: TRASLADAR POS-A, POS-B
que nos resulta de ms fcil comprensin
Un
El
lenguaje
ensamblador
permite
al
programador realizar tareas muy tcnicas que
seran difciles de realizar en un lenguaje de
alto nivel
El
Aunque
Los
MODOS DE DIRECCIONAMIENTO
El modo de direccionamiento indica la forma
en que el procesador calcula la direccin
donde ir a buscar el dato origen o grabar el
resultado en el operando destino
MODO IMPLICITO
En este modo se especifican los operandos en
forma implcita en la definicin de la
instruccin. Ejemplo: CLC, borrar sealizador
de arrastre
MODO INMEDIATO
En este modo se especifica el operando en la
instruccin misma. Son tiles para inicializar
registros en un valor constante:
Ejemplo: MOV AX,5
MODO DE REGISTRO
En este modo, solamente se realiza una copia
del registro fuente al registro destino, dejando
intacto el primero: Ejemplo: MOV AX, BX
EJECUCIN DE INSTRUCCIONES
Se utilizar un programa del DOS llamado
DEBUG que me permite:
Probar y depurar programas ejecutables
Visualizar el contenido de la memoria
Ingresar programas en la memoria
Rastrear su ejecucin
El rastreo de cmo se ejecutan las instrucciones
da una idea de la operacin de una
computadora y la funcin de los registros
un
conjunto
de
instrucciones
El despliegue de DEBUG
Consiste de tres partes:
-Direccin del primer byte de la izquierda que se
despliega
en
forma
SEGMENTO:DESPLAZAMIENTO
La representacin
desplegada
hexadecimal
del
rea
-D DS:200
149D:0200
149D:0210
149D:0220
149D:0230
149D:0240
149D:0250
149D:0260
149D:0270
8F 17 68 00 80 6A 02 1E-68 7E 60 1E 68 71 60 6A ..h..j..h~`.hq`j
00 6A 03 1E 68 B8 BE 6A-00 6A 04 6A 00 9A 06 45 .j..h..j.j.j...E
8F 19 6A 00 6A 43 6A 00-9A 12 16 4F 17 8E 46 FA ..j.jCj....O..F.
26 C7 05 01 00 EB 41 8E-46 FA 26 C7 05 00 00 EB &.....A.F.&.....
37 C7 06 36 36 00 00 FF-76 FA 57 56 9A E8 9F DF 7..66...v.WV....
3DE9 46 FF 8B 76 0E 56-6A 08 66 FF 76 06 9A 28 =.F..v.Vj.f.v..(
0D AF 17 C6 06 FC C9 00-1E 68 35 60 1E 68 46 60 .........h5`.hF`
56 0E E8 C9 F7 83 C4 0A-B8 01 00 EB 02 33 C0 1F V............3..
INSTRUCCIONES
DE
INTRODUCIR
UN
ENSAMBLADOR
PROGRAMA
EN
(Enter)
Ejemplo:
Ingresando lo siguiente:
C:\debug
-A 100
Me mostrar:
XXXX:0100
C:\>debug
-a100
0CAA:0100 MOV AH,30
0CAA:0102 INT 21H
0CAA:0104 NOP
0CAA:0105
-R
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0CAA ES=0CAA SS=0CAA CS=0CAA IP=0100 NV UP EI PL NZ NA PO NC
0CAA:0100 B430
MOV AH,30
-T
AX=3000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0CAA ES=0CAA SS=0CAA CS=0CAA IP=0102 NV UP EI PL NZ NA PO NC
0CAA:0102 CD21
INT 21
-P
AX=0005 BX=FF00 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0CAA ES=0CAA SS=0CAA CS=0CAA IP=0104 NV UP EI PL NZ NA PO NC
0CAA:0104 90
NOP
-
(debe
MOV AX, 4
MOV BX, 2
ADD AX, BX
INT 20
-H 10A 100
020A 000A
-N C:ejemplo1.com
-R BX
BX ????
: 0000
-RCX
CX 0000
: 000A
-W
Escribiendo 000A bytes
Ejemplos de programas:
Ejemplo 1:
Verificacin de fecha del ROM BIOS:
Digite: D FFFF:5 y Enter
Donde:
AL: Da de la semana( 0 = domingo)
CX: Ao en hexadecimal
DH: Mes(01 a 12)
DL: Da del mes(01 al 31)
jmp 125
ENTER
Este es un ejemplo usando debug 0d 0a $
mov cx,0014
mov dx,0102
mov ah,09
int 21
loop 012d
int 20