hex - 在汇编语言 NASM 中将十进制转换为十六进制
问题描述
这是我的代码中的十六进制部分之一,并且有点卡在十六进制部分中。当我输入 2560(十进制)并且输出为:00(十六进制)时。它给了我正确的价值,但我需要 A 而不是:。任何人都可以告诉我我的问题在哪里。我会感谢你的帮助。谢谢。
十六进制:
mov eax, msg8
call sprint
mov edx, 255
mov ecx, sinput8
mov ebx, 0
mov eax, 3
int 80h
mov eax, sinput8
call atoiToHex
call iprintLFToHex
ret
iprintToHex:
push eax
push ecx
push edx
push esi
mov ecx, 0
分割循环到十六进制:
inc ecx
mov edx, 0
mov esi, 16
idiv esi
add edx, 48
push edx
cmp eax, 0
jnz divideLoopToHex
printLoopToHex:
dec ecx
mov eax, esp
call sprint
pop eax
cmp ecx, 0
jnz printLoopToHex
pop esi
pop edx
pop ecx
pop eax
ret
iprintLFToHex:
call iprintToHex
push eax
mov eax, 0Ah
mov eax, esp
call sprint
pop eax
pop eax
ret
atoiToHex:
push ebx
push ecx
push edx
push esi
mov esi, eax
mov eax, 0
mov ecx, 0
.multiplyLoopToHex:
xor ebx, ebx
mov bl, [esi+ecx]
cmp bl, 48
jl .finishedToHex
cmp bl, 70
jg .finishedToHex
cmp bl, 10
je .finishedToHex
cmp bl, 0
jz .finishedToHex
sub bl, 48
add eax, ebx
mov ebx, 10
mul ebx
inc ecx
jmp .multiplyLoop
.finishedToHex:
mov ebx, 10
div ebx
pop esi
pop edx
pop ecx
pop ebx
ret
解决方案
推荐阅读
- javascript - 如何根据屏幕宽度动态设置道具?
- python - 在 Pandas 中按月根据环比值更新一列
- python-3.x - 如何使用flask-sqlalchemy的ORM DB API来使用json_extract、json_each、json_tree等sqlite json1特性?
- for-loop - Shopify 主题开发 - 创建新闻页面,其中“新闻”是博客“类别”
- .net - 从多个帐户获取日历约会
- java - 如何使用 2 组 RadioButton 在 EditText 中输入文本
- python - 迭代整数以获得随机种子是否合适?
- powershell - 在 Jenkins 管道中读取属性并将变量传递给 Powershell
- ruby-on-rails - 轮播图片源不会链接到图片,图片不会显示在网页上
- java - 在 java 中使用 Jubula 客户端 api 关闭 Swing 应用程序