作者jiunlin (jiunlin)
看板PangSir
标题Re: [问题] 请问今天上课的问题
时间Wed Oct 20 21:20:30 2004
※ 引述《dogger (ffgd)》之铭言:
: 就是在投影片的第15张
: 为什麽当myBytes的type改成WORD之後
: mov ax,myBytes
: add ax,[myBytes+1]
: add ax,[myBytes+2]
: 结果会是66E6阿
: 不好意思
: 上课没听清楚
: 想来想去还是想不出来@@
虽然已经有同学解答了,不过我想我还是更详细的解说一下好了:
.data
myBytes WORD 80h,66h,0A5h
;这里一共有三个WORD,在记忆体中是长这个样子的:
; 80 00 66 00 A5 00
; ↑
; myBytes表示此处的记忆体位置
.code
mov ax,myBytes
;从myBytes处开始取一个WORD,会得到80 00,但因为是little
;endian,所以ax=0080h。
add ax,[myBytes+1]
;从myBytes+1处开始取一个WORD,会得到00 66,但因为是little
;endian,所以当成WORD是6600h。ax=0080h+6600h=6680h。
add ax,[myBytes+2]
;同理,从myBytes+2处开始取一个WORD,得到66 00,但因为是
;little endian,所以是0066h。ax=6680h+0066h=66E6h。
TA
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.61.33
1F:推 drjoey:myByte+1有两个?? 219.84.71.144 10/20
2F:→ drjoey:第一个不是myByte而已吗? 219.84.71.144 10/20
※ 编辑: jiunlin 来自: 140.112.30.82 (10/21 15:13)
3F:推 jiunlin:感谢指正。 140.112.30.82 10/21