我正在尝试编写一个长程序,将十进制输入转换为十六进制输入和八进制等。
我几乎做了所有事情,但我在十六进制部分遇到了一点出价。我知道我必须将数字除以 16,直到系数为 0;然后余数是十六进制数。但是,从 10 到 15 的十六进制数应该是 A、B、C、D、E 和 F。
我不确定如何使用push
and来做到这一点pop
。
这是我到目前为止为十六进制部分所做的:
hex:
lable:
mov edx, 0
mov ebx, 16
div ebx
push edx
Inc count
cmp eax, 0
jne lable
mov ecx, count
lable2:
pop eax
call writedec
loop lable2
ret
jmp stop
它给了我正确的值,但是,例如,我需要 14 才能成为 E,依此类推
任何想法?