我已经开始学习asm了,我想知道将MOV
指令用于AL
的这两种不同方式之间有什么区别:
首先:
MOV AL,5H
第二
MOV SI,5H
MOV AL,[SI]
答案 0 :(得分:7)
这两个人做了不同的事情。
; 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 Assembly。汇编通常是简单易懂的语言,但最好只关注它的教程/书籍,先完全理解语法,然后 - 然后 - 才会跳进汇编阅读和写作的狂野世界。
此外,对于其他资源,您可以查看here。
答案 1 :(得分:2)
使用像SI这样的索引寄存器时,也可以应用非零基本偏移量,例如:
MOV AL,[BX + SI]
首先将BX设置为适当的基址偏移地址。