问题标题:
微机原理的一个试题看不懂每条指令的意思!DATASEGMENTAT2000HORG30HVAR1DW10DUP(?)VAR2DB10DATAENDS分析下列指令执行后寄存器的结果:MOVAX,SEGVAR1;AX=()MOVBX,OFFSETVAR1;BX=()MOVCX,OFFSETVAR2;C
问题描述:
微机原理的一个试题看不懂每条指令的意思!
DATASEGMENTAT2000H
ORG30H
VAR1DW10DUP(?)
VAR2DB10
DATAENDS
分析下列指令执行后寄存器的结果:
MOVAX,SEGVAR1;AX=()
MOVBX,OFFSETVAR1;BX=()
MOVCX,OFFSETVAR2;CX=()
MOVDX,VAR2;DX=()
吕婷婷回答:
AX=2000H
BX=30H
CX=44H
DX=10H
化建宁回答:
原因!
吕婷婷回答:
MOVAX,SEGVAR1将VAR1的段地址存入AX,这里段址就是2000H;MOVBX,OFFSETVAR1将VAR1的偏移地址存入BX,就是30H(由ORG30H可知,没有这句就是0)MOVCX,OFFSETVAR2将VAR2的偏移地址存入CX。由于VAR1是DW型,双字,每个数据项占4字节,共有10个数据,占40(28H)个字节,因此VAR2的偏移就是在VAR1的基础上加28H,为58H,因此CX=58H(原来有误,特此更正!!)MOVDX,VAR2将VAR2的值存入DX,DX就是10H了。
化建宁回答:
AX=2000HBX=0030HCX=003AHDX=0AH参考答案是这样的CX貌似不对吧,不过谢谢你,在帮一下忙,
吕婷婷回答:
嗯。是的。“夜隐霜华”的修正是对的。CX=0044H。参考答案中的CX=003AH好象不对。
点击显示
数学推荐
热门数学推荐