当前位置: 代码迷 >> 汇编语言 >> 新手在學習intel彙編語言程序設計中的一個問題,该如何解决
  详细解决方案

新手在學習intel彙編語言程序設計中的一個問題,该如何解决

热度:4297   发布时间:2013-02-26 00:00:00.0
新手在學習intel彙編語言程序設計中的一個問題
書中有這樣一段程式:
.data
arrayB BYTE 10h,20h,30h
.code
mov esi, OFFSET arrayB
mov al,[esi]


我的理解是:esi為32位寄存器,al是位寄存器 ,這樣可以使用mov指令嗎?

請大哥幫忙解惑,不盡感激!
------解决方案--------------------------------------------------------
引用:
書上說[esi]和esi是一樣的
这是瞎说,或者是你没看对或是想像错了。[esi] 是指 esi 寄存器的内容作为内存地址的那个内存的值;esi 则就指 esi 这个寄存器自身。
对一般的 Masm 汇编程序来说,[1234] 和 1234 都被认为是立即数,而非通常想像上的 [1234] 中的 1234 作为内存地址,但这个不算合理的理解不能由立即数推广到寄存器上。
所以,顶楼的问题就不是问题了吧,给 al 的是 esi 指向的内存处的那个字节,而非 esi 自身。
  相关解决方案