-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path8. suma basica pt2.asm
77 lines (56 loc) · 1.57 KB
/
8. suma basica pt2.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
;*** PROGRAMA PARA OBTENER EL ASCII DE UN CARACTER ***
;NOTA: ESTE METODO SOLO FUNCIONA CON UN ASCII DE 2 NUMEROS OSEA UN ASCII MAYOR A 99 NO FUNCIONARA
.MODEL SMALL
.STACK 100H
.DATA
pregunta db "Ingrese un caracter:$"
respuesta db "El codigo ASCII en BCD de ese caracter es:$"
caracter db "$"
caracter2 db "$"
.CODE
inicio:
mov ax,@data
mov ds,ax
programa:
lea dx,pregunta
call println()
call readkey() ;El caracter queda en AL como HEX
AAM ;Convertir el caracter en BCD DH: Decimas y AL: Unidades
mov caracter,ah ;Muevo el caracter a una variable, inicio con ah pues lo ocupo para servicio
mov caracter2, al ;Muevo la otra parte caracter a otra variable
;Revice el registro AX si no lo logra entender, el BCD se ve dentro de el
call clear()
lea dx,respuesta
call println()
mov dl,caracter ;Muevo a DL el caracter y asi usar getchr()
call getchr() ;Imprime le caracter
mov dl,caracter2
call getchr()
call readkey()
halt:
mov ah,4ch
int 21h
;*** METODOS ***
println() proc
mov ah,09h
int 21h
ret
endp
getchr() proc ;Este metodo imprime el contenido en DL
mov ah,02h
add dl,30h ;Sumar para obtener el numero real BCD
int 21h
ret
endp
readkey() proc ;Este metodo espera un input por teclado
mov ah, 01h
int 21h
ret
endp
clear() proc
mov ah,00h
mov al,03h
int 10h
ret
endp
end