有什么区别 - MOV指令

时间:2012-10-04 12:09:20

标签: assembly x86 mov

我已经开始学习asm了,我想知道将MOV指令用于AL的这两种不同方式之间有什么区别:

首先:

MOV AL,5H

第二

MOV SI,5H
MOV AL,[SI]

2 个答案:

答案 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)

  1. 只需将AL寄存器的值设置为5H
  2. 即可
  3. 首先它将SI寄存器设置为5H  然后它将SI取消引用的值移动到AL(即内存地址5H中的任何内容现在移入AL)。
  4. 使用像SI这样的索引寄存器时,也可以应用非零基本偏移量,例如:

    MOV AL,[BX + SI]
    

    首先将BX设置为适当的基址偏移地址。