Assembly 如何使用汇编语言x86 masm将十进制转换为十六进制

Assembly 如何使用汇编语言x86 masm将十进制转换为十六进制,assembly,x86,masm,base-conversion,irvine32,Assembly,X86,Masm,Base Conversion,Irvine32,1) 将十进制数转换为十六进制数 我不知道如何把十进制转换成十六进制。我只是输入了一个数字,但我不知道下一步该如何开始。感谢您的帮助 TITLE include irvine32.inc .data a dword ? b dword ? final dword ? count dword 0 prompt1 byte ,'Enter a number',0 .code main PROC mov edx,offset prompt1 call writestring

1) 将十进制数转换为十六进制数

我不知道如何把十进制转换成十六进制。我只是输入了一个数字,但我不知道下一步该如何开始。感谢您的帮助

TITLE include irvine32.inc .data a dword ? b dword ? final dword ? count dword 0 prompt1 byte ,'Enter a number',0 .code main PROC mov edx,offset prompt1 call writestring call readint mov a,eax main ENDP END main 标题 包括irvine32.inc .数据 德沃德? b德沃德? 最后的德沃德? 计数dword 0 prompt1字节,“输入一个数字”,0 .代码 主进程 移动edx,偏移提示1 通话记录 调用readint mova,eax 主端 端干管
可能他们想从你那里得到的是写一个循环,它除以16,得到除法的剩余部分乘以16。然而,你问的不是很清楚。什么是“提示1”?

我从键盘上得到一个数字,我必须将其转换为十六进制。Prompt1正在从用户处获取输入。我应该把a除以16吗?因为a是要转换为十六进制的十进制数。啊,我明白了,如果是0到9之间的数字,你应该减去ASCII 0,如果是在“a”和“f”之间,你应该减去ASCII“a”,然后加10。也可以输入大写的键码。请给我写上密码。我不知道怎么做。谢谢
打电话给WriteHex
。但我强烈怀疑你应该自己做。是的,您想除以16,但可能不能使用
div
(可以,但速度很慢)。我自己也喜欢旋转。将最左边的4位旋转到最右边的位置,屏蔽它们,添加“0”,如果高于“9”,再添加7(如果您喜欢小写,则为27h),
调用WriteChar
。。。直到完成。