- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理与接口技术复习题1–5(答案)
复习题1:
指出下列指令的错误(1)MOV AH,BX (2)MOV [BX],[SI] (3)MOV AX,[SI] [DI] (4)MOV MYDAT [BX] [SI],ES:AX(5)MOV BYTE PTR [BX],1000 (6)MOV BX,OFFSET MYDAT[SI]? (7)MOV CS,AX
(8)SAL AL, 5
答案:(1)MOV AH,BX 源操作数与目的操作数长度不相同(2)MOV [BX],[SI] 这是两个内存单元在传递数据,而这在汇编语言中是不允许的。不允许两内存单元同时作为源操作数和目的操作数进行运算(3)MOV AX,[SI] [DI] 不能用两个变址连用,其中一个应为基址BX或BP(4)MOV MYDAT [BX] [SI],ES:AX 同(2)(5) MOV BYTE PTR [BX],1000源操作数与目的操作数长度不相同,1000D=3E8H(6)MOV BX,OFFSET MYDAT [SI]? OFFSET不能与复杂操作数相连(7)MOV CS,AX?,不能对CS赋值
(8)MOV CL,5
SAL AL,CL
2、下面哪些指令是非法的?(假设OP1,OP2是已经用DB定义的变量)(1)CMP 15,BX(2)CMP OP1,25(3)CMP OP1,OP2(4)CMP AX,OP1
答案(1)非法? (2)合法? (3)非法?? (4)非法
3、假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列指令中哪些是非法的?它们的错误是什么?(1)MOV? BP,AL(2)MOV? WORD_OP [BX+4*3] [DI],SP(3)MOV? WORD_OP1, WORD_OP2(4)MOV? AX, WORD_OP1 [DX](5)MOV? SAVE_WORD, DS(6)MOV? SP, SS:DATA_WORD [BX] [SI]
(7)MOV? AX, [WORD_OP1+WORD_OP2](8)MOV? AX, [WORD_OP1-WORD_OP2+100](9)MOV?[WORD_OP1], [WORD_OP1-WORD_OP2]
答案:(1)非法,操作数类型不同。(2)合法。(3)非法,不允许两个内存单元直接传递数据。(4)非法,DX不可以用作基址。(5)合法。(6)非法,SS不可以作段跨越前缀。(7)合法。(8)合法。(9)非法,不允许两个内存单元直接传递数据。不允许两内存单元同时作为源操作数和目的操作数进行运算
4、假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处。(1)ADD? VAR1,VAR2(2)SUB? AL,VAR1(3)JMP? LAB [SI](4)JNZ? VAR1(5)JMP? NEAR? LAB
答案:(1)不允许两内存单元同时作为源操作数和目的操作数进行运算(2)操作数类型不同(3)跳转指令只能转到符号地址(4)转移指令后不能为变量,只能为标号(5)格式不对,应为 NEAR PTR。
补充题
5、指出下列指令中的错误,并改正。
(1) MOV BL, 30A0H (2) MOV 0010H, AL
(3) XCHG AL, BX (4) MOV [AX], 3456H
(5) PUSH AL (6) POP CS
(7) MOV DS, 1000H (8) MOV [BX], [1000H]
(9) LDS (BX), [1000H] (10) LEA BX, CX
答:
(1)数据类型不一致,改为:MOV BX,30A0H
(2)0010H是个立即数,既不是一个内存单元的地址,也不是个寄存器
改为:MOV [0010H],AL
(3)数据类型不一致,改为:XCHG AX, BX
(4)这是寄存器间接寻址,只能使用基址变址寄存器。而且需要指定为字类型
改为:MOV WORD PTR [SI], 3456H
(5)PUSH指令是压入堆栈两个字节的操作。改为: PUSH AX
(6)不能对CS进行直接修改, 改为:POP CX
(7)不能对段寄存器直接赋值,而只能通过累加器来赋值
改为: MOV AX, 1000H
MOV DS, AX
(8)存储器的两个单元之间不能同时作为源操作数和目的操作数参与运算
改为:MOV AX, [1000H]
MOV [BX], AX
(9)没有()这种指令
改为:LDS BX,
文档评论(0)