l微机原理及接口第三章作业答案.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文档。上传文档
查看更多
l微机原理及接口第三章作业答案

“微机系统原理与接口技术”第三章习题解答 下列各条指令是否有错?如果有,请指出错误之处并改正。 MOV DS,1000H MOV [100],23H ADD AX,[BX+BP+6] PUSH DL IN AX,[3FH] OUT 3FFH,AL LES SS,[SI] POP [AX] IMUL 4CH SHL BX,5 INT 300 XCHG DX,0FFFH 答:(1)错误。不允许直接向段寄存器送立即数,可改为: MOV AX,1000H MOV DS,AX (2)错误。该指令在语法上是对的,如果考虑实际编译,则应加上BYTE PTR或WORD PTR汇编程序会因不能确定操作数长度而指示出错。? 255,已超出有效的中断类型码范围。 (12)错误。XCHG指令不允许立即数做它的操作数。可改为: MOV CX,0FFFH XCHG DX,CX 请指出以下各指令的源、目的操作数所使用的寻址方式。 MOV SI,2100H SBB DISP[BX],7 AND [DI],AX OR AX,[609EH] MOV [BX+DI+30H],CX PUSH ES:[BP] CALL [DI]DISP JNZ Short_ label 答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址 (2)源操作数:立即数寻址;目的操作数:(带位移量的)基址寻址 (3)源操作数:寄存器寻址;目的操作数:变址寻址 (4)源操作数:直接寻址; 目的操作数:寄存器寻址 (5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址 (6)源操作数:带段超越的基址寻址;目的操作数:隐含寻址 (7)只有一个操作数,为(带位移量的)变址寻址 (8)只有一个操作数,为相对寻址 在已学的指令中,可实现累加器清0的单条指令有哪些?比较它们的功能。 答:共有以下四种方法: MOV AX,0 ;仅将累加器清0,不会影响任何标志位 SUB AX,AX ;累加器清0的同时影响所有状态标志,具体地有: ;ZF、PF置1,CF、AF、SF、OF均清0 AND AX,0 ;将累加器清0,ZF、PF置1,CF、OF 、SF清0 XOR AX,AX ;将累加器清0,ZF、PF置1,CF、OF 、SF清0 若要判断某带符号数的正、负而不影响其原值,可使用哪些方法? 答:设带符号数为oprd,判断方法可有如下几种: 执行指令 ADD oprd,0 之后,判断SF:SF =0,oprd为正数,否则为负。 执行指令 SUB oprd,0 之后,判断SF:SF =0,oprd为正数,否则为负。 执行指令 CMP oprd,0 之后,可直接判断SF:SF =0,oprd为正数,否则为负;或者再接着执行指令 JGE NOMINUS(即同时判断SF、OF),若程序转移至NOMINUS处,则oprd为正数,否则为负;同理,亦可在在执行完CMP oprd,0 之后再接着执行指令 JL NOMINUS,若程序转移至NOMINUS处,则oprd为负数,否则为正。 执行指令 CMP oprd,80H(或8000H)之后,判断CF:CF =1,oprd为正数,否则为负。 执行指令 AND oprd,oprd(或全“1”)之后,判断SF:SF =0,oprd为正数,否则为负。 执行指令 TEST oprd,oprd(或全“1”)之后,判断SF:SF =0,oprd为正数,否则为负。 执行指令 TEST oprd,80H(或8000H)之后,判断SF:SF =0,oprd为正数,否则为负;或判断ZF:ZF =1,oprd为正数,否则为负。 执行指令 OR oprd,oprd(或全“0”)之后,判断SF:SF =0,oprd为正数,否则为负。 执行指令 XOR oprd,0 之后,判断SF:SF =0,oprd为正数,否则为负。 已知DS=2000H,有关的内存单元值为:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT的偏移地址为1200H。执行下列指令后,寄存器AX、BX、SI的值分别是多少? MOV BX,OFFSET COUNT MOV SI,[BX] MOV AX,COUNT[SI][BX] 答:执行结果为BX=1200H,SI=1000H,AX=3040H。 设标志寄存器值原为0401H,AX=3272H,BX=42A2H。执行指令SBB AL,BH之后,AX和标志寄存器的值分

文档评论(0)

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

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

1亿VIP精品文档

相关文档