汇编语言基本指令系统习题
    习题4
    1.尝试在以下说明中解释每个操作数的寻址模式。如果是内存寻址,请给出其EA计算公式,并说明使用的段寄存器。(1) moval,08h(2)mov[0120h],bl(3)添加[bx],al(4)推动[si]0200h(5)子顶点[bp](6)和VAR1+4,dl(7)推动
    (8)moves:[bx]0100h,al
    (9) ADCBytepter[bp][si]0210h,45h(10)或[bx][di],cl
    2.试分析下列汇编指令是否存在语法错误,如果有语法错误存在,请说明是怎样的错误。(1)push8243h(2)popal(3)moval,6543h(4)add[0100h],64h(5)adcvar1,var2(6)movds,es(7)movds,0620h(8)leabx,ax(9)decal,ah(10)shrbl,3
    3.执行以下指令组后,尝试解释六个状态标志CF、of、AF、ZF、SF和PF的值。
    (1)moval,08haddal,0f9h(2)moval,0e1haddal,0f4h(3)moval,01hsubal,02h(4)moval,02hincal(5)moval,01handal,02h
    4.根据需要分析以下程序段的执行结果。莫瓦尔,0c2hmovah,0e4haddal,啊
    执行该程序片段后,(al)=?,(ah)=?,如果将add指令的两个操作数解释为无符号数,运算有没有溢出?为什么?如果将add指令的两个操作数解释为补码,运算有没有溢出?为什么?
    5.根据需要分析以下程序段的执行结果。莫瓦尔,98hmovbl,42hxchgal,blsubal,bl
    执行该程序片段后,(al)=?,(bl)=?,如果将sub指令的两个操作数解释为无符号数,运算有没有溢出?为什么?如果将sub指令的两个操作数解释为补码,运算有没有溢出?为什么?如果将sub指令的两个操作数解释为补码,其减法运算对应的十进制真值表达式应如何书写?
    6.根据需要分析以下程序段的执行结果。
    stc
    莫瓦尔,03handal,02hadcal,00h
    执行该程序片段后,(al)=?
    7.假设(DS)=1000h,(SS)=2000h,字存储单元(10200h)=0870h,(10202h)=2000h,(20870h)=0203h,(20872h)=0405h,存储单元的物理地址在括号中给出,括号表示存储在地址指示的单元中的数据。分别执行以下程序段后,根据需要分析每个程序段的执行结果。(1) 执行程序段后的时间[0200小时](AL)=?(2) Movbp,0871hmovbl,[BP]在执行程序段后,(BL)=?(3) 执行程序片段后的Leasi,[0200h],(SI)=?(4) Movsi,[0200h]leasi,[Si]在执行程序段后,(Si)=?(5) Ldsbx,[0200h]运动,[BX]0002h在执行程序段后,(AL)=?
    8.按要求分析下面程序片段的执行结果。movax,651chshlal,1rclah,1
    执行程序段后,(AX)=?,这个节目段的功能是什么?如果(AX)被解释为无符号数,那么操作是否溢出?为什么?如果(AX)被解释为补码,操作是否溢出?为什么?SHL和sal指令之间的关系和区别是什么?
    9.按要求分析下面程序片段的执行结果。moval,35handal,0fh
    执行程序段后,(AL)=?CF、of、AF、ZF、SF和PF标志的值是多少?这个节目段的功能是什么?
    10.假设一个48位的补码按照由低位到高位的顺序保存在字类型的内存单元va1、va1+2、va1+3中,试按下列要求完成程序片段设计。
    (1) 程序片段设计为将48位补码除以4,运算结果仍保存在原始存储单元中。(2) 程序片段被设计为寻48位补码的相反补码,运算结果仍保存在原始存储单元中。11.尝试解释如何使用CMP指令提供的标志位来判断两个补码操作数之间的大小关系。12.假设(SP)=0060h,在执行两次push指令后,(SP)=?假设(SP)=0038h,在pop指令执行三次后,(SP)=?
汇编指令有多少个    13.按要求分析下面程序片段的执行结果。moval,01hnegalincal
    在执行程序段(AL)=?,CF和标志的状态如何?14.根据需要分析以下程序段的执行结果。movbl、51handbl、0fehxorbl、50hdecbl
    执行该程序片段后(bl)=?,cf、of标志的状态是什么?15.按照各小题的要求分别设计程序片段。(1)将al寄存器的高4位与低4位交换(2)将tf标志位置1
    (3) 将Al寄存器的第7位清除为0,但不会影响其他数据位(4)。将Al寄存器的最低两位分开,并将其他数据位清除为0。
    (5)分离al寄存器的高4位与低4位,并分别保存在bl、bh的低4位
   
   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。