嗨有人可以帮我解决这个问题吗?我是汇编级编程的新手。
在我的 alp 代码中,我用代码定义了一个字节:
count db 0
Run Code Online (Sandbox Code Playgroud)
在程序的另一部分中,我尝试将值提取到 ah 寄存器中,并向其添加 1,如下所示:
mov ah,count
add ah,1
Run Code Online (Sandbox Code Playgroud)
现在,如何使用ah寄存器中新的增量值更新count识别的内存位置,以便我可以将其用作循环或任何其他目的的计数器?
mov ah, count是行不通的。在 Nasm 语法中,它会尝试将 的地址移动count到 ah... 中,但它不适合。您想要“[内容]”。
mov ah, [count]
inc ah
mov [count], ah
Run Code Online (Sandbox Code Playgroud)
你也可以...
inc byte [count]
; and perhaps...
cmp byte [count], MAXCOUNT
jb looptop
Run Code Online (Sandbox Code Playgroud)
(当然,使用MAXCOUNT和looptop定义)使用寄存器比使用内存更快,但您可以选择其中之一。正如 Mat 建议的那样,不要犹豫“尝试一下”!
| 归档时间: |
|
| 查看次数: |
8048 次 |
| 最近记录: |