【发布时间】:2022-01-17 09:33:14
【问题描述】:
我正在尝试使用 NASM 做一个非常简单的组装练习,但我所学到的一切都表明这应该可行,但它没有。
它应该遍历字符串“Burning The Midnight Oil”,并将字符反向放入dest,以便在输出中打印“liO thgindiM ehT gninruB”。它不是。它只是打印 x 的字符串,不管我做什么来改变它。
我在这里缺少什么? dest 创建后如何编辑它的内容?我好累。
global _start
section .text
_start: mov rax, 1
mov rdi, 1
mov rsi, dest
mov rdx, len
syscall
mov rax, 60
xor rdi, rdi
syscall
section .data
src: db 'Burning The Midnight Oil', 10
dest: db 'xxxxxxxxxxxxxxxxxxxxxxxx', 10
len: equ $ - dest
xor rcx,rcx
mov rcx,len
mov rsi,len
loopstart:
sub rsi,rcx
mov al,[src+rcx]
mov [dest+rsi],al
dec rcx
jnz loopstart
【问题讨论】:
-
您甚至在处理字符串之前就显示并退出!将循环代码移动到 _start:.
-
...哦,天哪。真的就这么简单???它现在打印“liO thgindiM ehT gninruB”。太感谢了。我觉得有点傻,但我也觉得我的教授不应该等到期末考试周才开始教我们组装。
标签: string assembly character nasm