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
---------------------------------------------------------------------------------------------------
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


0