-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdec2hex.asm
More file actions
130 lines (118 loc) · 1.81 KB
/
dec2hex.asm
File metadata and controls
130 lines (118 loc) · 1.81 KB
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
LOCALS @@
title ""
.model small
.386
.stack 64
.data
string db "Hola Mundo!",0Ah,0Dh,'$'
.code
; El número a imprimir estará en ax
print_dec proc tiny
push bp
mov bp,sp
mov bx,10
@@loop_digitos:
xor dx,dx
div bx
push dx
cmp ax,0h
jne @@loop_digitos
mov ax,0200h
@@loop_imprimir:
pop dx
or dx,30h
int 21h
cmp bp,sp
jne @@loop_imprimir
mov dx,000Ah
int 21h
add dx,0003h
int 21h
pop bp
ret
print_dec endp
dec2hex proc tiny
push bp
mov bp,sp
mov bx,16
@@loop_digitos:
xor dx,dx
div bx
push dx
cmp ax,0h
jne @@loop_digitos
mov ax,0200h
@@loop_imprimir:
pop dx
or dx,30h
cmp dx,3Ah
jl @@print
add dx,07h
@@print:
int 21h
cmp bp,sp
jne @@loop_imprimir
mov dx,000Ah
int 21h
mov dx,000Dh
int 21h
pop bp
ret
dec2hex endp
dec2bin proc tiny
push bp
mov bp,sp
xor cx,cx
mov bx,2h
@@loop_digitos:
xor dx,dx
div bx
push dx
inc cx
cmp ax,0h
jne @@loop_digitos
; @loop_espacios:
xor dx,dx
mov ax,cx
mov bx,04h
div bx
mov cx,dx
mov dx,0h
@@loop_espacios:
push dx
loop @@loop_espacios
xor cx,cx
mov ax,0200h
@@loop_imprimir:
pop dx
or dx,30h
int 21h
inc cx
cmp cx,4h
jl @@continue_loop
mov dx,' '
xor cx,cx
int 21h
@@continue_loop:
cmp bp,sp
jne @@loop_imprimir
mov dx,0Ah
int 21h
mov dx,0Dh
int 21h
pop bp
ret
dec2bin endp
inicio:
mov ax,@data
mov ds,ax
mov ax,3DACh
call print_dec
mov ax,3DACh
call dec2hex
mov ax,3DACh
call dec2bin
salida:
mov ax,4C00h
int 21h
end inicio