我在如何实现这个问题上遇到了问题。我试图将整数转换为ASCII格式的senary值。
; Macro to convert integer to senary value in ASCII format.
; Call: int2senary <integer>, <string-addr>
; Arguments:
; %1 -> <integer>, value
; %2 -> <string>, string address
; Reads <string>, place count including NULL into <count>
; Note, should preserve any registers that the macro alters.
mov eax, %1
mov r9d, 6
convLoop:
div r9d
add edx, 48
push edx
cmp eax, r9d
jge convLoop
答案 0 :(得分:1)
关于此代码的几点:
a在做DIV之前,你需要清除EDX。
b只要EAX不为0,迭代就必须继续。
c你需要计算你做了多少次PUSH。另外,如果将结果存储在字符串中,您还知道要执行多少次弹出窗口?