MOV
我已经开始学习 asm,我想知道这两种使用指令的不同方式之间有什么区别AL
:
第一的:
MOV AL,5H
第二:
MOV SI,5H
MOV AL,[SI]
这两个做不同的事情。
; let me use friendlier syntax; IMHO, lower case and 0x5 instead of 5h is more
; readable in case of assembly
mov al, 0x5 ; al = 0x5
mov si, 0x5 ; si = 0x5
mov al, [si] ; al = *si; that is, al is now what was in memory at address 0x5
有一本关于 x86 程序集的简单 wikibook 可以更好地向您解释概念和语法:x86 程序集。汇编通常是简单的语言,但最好只遵循关于它的教程/书籍,首先完全理解语法,然后 - 并且只有这样 - 才能进入汇编阅读和写作的狂野世界。
此外,对于其他资源,您可以查看此处。
您还可以在使用 SI 等索引寄存器时应用非零基偏移,例如:
MOV AL,[BX + SI]
在首先将 BX 设置为适当的基偏移地址之后。