+ -
当前位置:首页 → 问答吧 → 本人刚学汇编,看的是王爽的书,有点小问题!

本人刚学汇编,看的是王爽的书,有点小问题!

时间:2011-07-08

来源:互联网

mov ax,2000h
mov ds,ax
mov bx,1000h
mov ax,[bx]


红色部分(伪代码):[bx]=ds:bx=2000:1000
之后ax=00BEh 内存21000h处是BE, 内存21001h处是00。(ah和al这个我懂)

问:(1)ax如何得到00BEh的?(是不是(ds*16)+bx,如果是这样那么如何算的呢?)
(2)所有的 h 是什么意思 ?


谢谢各位朋友帮助!!!

作者: OLDMAN398045116   发布时间: 2011-07-08

你的程序就是把内存中2000:1000中两个字节的数据送到AX中。2000:1000和2000:1001,AH对应高位字节,AL对低位字节。传送两个字节数据是根扰AX来计算的。因为AX寄存器是是双字节寄存器。h表示采用了16进制计数方法。王爽老师书上第二章说的很明白。

作者: jingzizhuo   发布时间: 2011-07-08

你一个问题都没回答我。。如何计算得到ax=00beh的呢?

作者: OLDMAN398045116   发布时间: 2011-07-08

认真看书

作者: Night_Dystar   发布时间: 2011-07-08

引用 2 楼 oldman398045116 的回复:

你一个问题都没回答我。。如何计算得到ax=00beh的呢?

========================
算法你已经说了:(ds*16)+bx=2000HX10H+1000H=21000H,把21000H内存中连续两个字节的数据,送入AX

作者: jingzizhuo   发布时间: 2011-07-08

如果还不明白,请看仔细再看看书上的2.6,2.7节,你就会明白了。

作者: Silent_hi   发布时间: 2011-07-08