汇编语言第5章作业答案.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言第5章作业答案

习题5 1.试说明以下指令中各操作数的寻址方式,如果是存储器寻址,请给出其EA计算公式,并说明所使用的段寄存器。 (1)MOV AL,08H 源操作数:立即数寻址 目的操作数:寄存器寻址 (2)MOV [0120H],BL 源操作数:寄存器寻址 目的操作数:直接寻址, EA=0120H,使用DS段寄存器 (3)ADD [BX],AL 源操作数:寄存器寻址 目的操作数:寄存器间接寻址, EA=(BX),使用DS段寄存器 (4)PUSH [SI]0200H 源操作数:变址寻址,EA=(SI)+0200H,使用DS段寄存器 目的操作数:隐含寻址(指令中未直接体现) (5)SUB AX,[BP] 源操作数:寄存器间接寻址,EA=(BP),使用SS段寄存器 目的操作数:寄存器寻址 (6)AND VAR1+4,DL 源操作数:寄存器寻址 目的操作数:直接寻址,EA=VAR1+4,使用DS段寄存器 (7)PUSHF 源操作数、目的操作数均为隐含寻址 (8)MOV ES : [BX]0100H, AL 源操作数:寄存器寻址 目的操作数:基址寻址,EA=(BX)+0100H,用ES段寄存器 (9)ADC BYTE PTR [BP][SI]0210H,45H 源操作数:立即数寻址 目的操作数:基址变址寻址,EA=(BP)+(SI)+0210H,使用SS段寄存器 (10)OR ARRY[BX][DI],CL 源操作数:寄存器寻址 目的操作数:基址变址寻址,EA=(BX)+(DI)+ARRY,使用DS段寄存器 2.试分析下列汇编指令是否存在语法错误,如果有语法错误存在,请说明是怎样的错误。 (1)PUSH 8243H 错误,单操作数指令不能使用立即数 (2)POP AL 错误,进栈、出栈指令的操作数应为16位 (3)MOV AL,6543H 错误,源、目的操作数类型不匹配 (4)ADD [0100H],64H 错误,目的操作数应使用PTR运算符指出类型,否则具有二义性 正确的写法:ADD BYTE PTR [0100H],64H,(或使用WORD PTR) (5)ADC VAR1,VAR2 错误,8086指令系统的双操作数指令中,必须有一个是寄存器,不能两个操作数同为内存单元 (6)MOV DS,ES 错误,段寄存器间不能使用MOV指令直接传递数据,必须通过通用寄存器作为中转 (7)MOV DS,0620H 错误,使用MOV指令向段寄存器传递数据时,不能使用立即数 (8)LEA BX,AX 错误,LEA指令的源操作数必须为内存单元 (9)DEC AL,AH 错误,DEC指令为单操作数指令 (10)SHR BL,3 错误,当移位次数大于1时,在移位指令中特定使用CL寄存器给出移位次数 正确的写法:MOV CL, 3 SHR BL, CL 3.试说明分别执行下列各组指令后,CF、OF、AF、ZF、SF、PF这六个状态标志分别是怎样的取值。 (1)MOV AL,08H ADD AL,0F9H CF=1; OF=0; AF=1; ZF=0; SF=0; PF=0 (2)MOV AL,0E1H ADD AL,0F4H CF=1; OF=0; AF=0; ZF=0; SF=1; PF=0 (3)MOV AL,01H SUB AL,02H CF=1; OF=0; AF=1; ZF=0; SF=1; PF=1 (4)MOV AL,02H INC AL CF维持MOV指令前的取值 (INC指令不影响CF);OF=0; AF=0; ZF=0; SF=0; PF=1 (5)MOV AL,01H AND AL,02H CF=OF=0; AF不确定; ZF=1; SF=0; PF=1 4.按要求分析下面程序片段的执行结果。 MOV AL,0C2H MOV AH,0E4H ADD AL,AH 执行该程序片段后,(AL)=?,(AH)=?,如果将ADD指令的两个操作数解释为无符号数,运算有没有溢出?为什么?如果将ADD指令的两个操作数解释为补码,运算有没有溢出?为什么? 答:执行该程序片段后,(AL)=0A6H,(AH)=0E4H,如果操作数解释为无符号数,运算溢出,因为加法运算后最高位产生了进位,CF=1,需使用9个二进制位才能表达完整运算结果;如果将操作数解释为补码,则运算没有溢出,因为从操作数与运算结果的符号位观察,两个操作数均为负数补码,相加后所得结果仍然为负数补码,符号位正确,表明加法结果未超出补码表示范围(这里是8位补码的表示范围),加法运算后OF=0。 5.按要求分析下面程序片段的执行结果。 MOV AL,9

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档