首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2013-01-26 
新手在學習intel彙編語言程序設計中的一個問題書中有這樣一段程式:.dataarrayB BYTE 10h,20h,30h.codemov

新手在學習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 自身。

热点排行