Ensamblador - Duda con este programa

 
Vista:

Duda con este programa

Publicado por Frange (1 intervención) el 15/12/2007 17:20:29
Tengo una duda con este programa, me pedian:

---------------------------------------------------------------------------------------------------
Realizar un programa en ensamblador que pida introducir por
teclado un número de 16 bits, que realice el complemento a 2 de dicho
número y lo almacene en la variable Compa2 y finalmente ponerlo en
exceso a 215 y almacenarlo en la variable Exceso y mostrarla.
----------------------------------------------------------------------------------------------------

Y no tengo ni idea de si esto está bien y que me falta por hacer:
----------------------------------------------------------------------------------------------------------
dosseg
.model small
.stack 100h
.data

Texto DB "Introduce un numero binario de 16 bits ", 13,10,'$'
Modo DB "Introduce digito: " ,'$'
SaltoLinea DB 13,10,'$'
Resultado DW 0000h
Aux DW 0000h
Compa2 DW 0000h
Exceso DW 0000h

.code
Inicio:
mov ax, @data
mov ds, ax

mov ah, 9 ; Muestra el texto TEXTO por pantalla
lea dx, Texto
int 21h

mov cl, 16 ; Realizara el bucle 16 veces

bucle:
mov ah, 9 ; Muestra el texto MODO por pantalla
lea dx, Modo
int 21h

xor bx, bx ; Pone a 0 BX

mov ah, 1 ; espera para leer un caracter por teclado
int 21h

mov bl, al ; mueve el numero introducido a BL
sub bl, 30h
mov Aux, bx

mov bl, 1
cmp cl, bl
jz movimiento
dec cl
shl Aux, cl
inc cl

movimiento:

mov ax, Aux
add Resultado, ax

mov ah, 9
lea dx, SaltoLinea
int 21h
loop bucle

mov ax, Resultado
neg ax
mov Compa2, ax

mov ax, Resultado
add ax, 8000h
mov Exceso, ax

xor dx,dx
mov ah, 9
lea dx, Resultado
int 21h


mov ah, 4Ch
int 21h
END Inicio


GRACIAS POR CONTESTAR
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder