问题描述
这是在NASM-v2.13.02中正确运行的代码...
section .data
digit db 0,10;defines the first number with newline character
section .text
global _start
_start:
mov rbx,48 ;ascii 48 => '0'
mov rcx,57 ;ascii 57 => '9'
loop: call _printRBX ;print rbx
add rbx,1 ;rbx += 1
cmp rbx,57 ;rbx <= 57 ? (true/false)
jle loop ; jump to "loop" if above is true
mov rax,60 ;id=sysexit
mov rdi,0 ;errorcode=0
syscall
_printRBX: ;prints last byte of rbx
mov [digit],bl ;move pointer of digits to last 1byte of rbx
mov rax,1 ;id=syswrite
mov rdi,1 ;desc=standard output
mov rsi,digit ;buffer input
mov rdx,2 ;write byte size
syscall
ret
标签“ loop”中的“ 57”被rcx替换时...变成了无限循环!
section .data
digit db 0,rcx ;rbx <= rcx ? (true/false)
jle loop ; jump to "loop" if above is true
mov rax,2 ;write byte size
syscall
ret
请让我了解这是如何发生的以及我该如何解决!! 谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)