微机原理(判断题)(指令正误)

上传人:第*** 文档编号:31143330 上传时间:2018-02-05 格式:DOC 页数:4 大小:53KB
返回 下载 相关 举报
微机原理(判断题)(指令正误)_第1页
第1页 / 共4页
微机原理(判断题)(指令正误)_第2页
第2页 / 共4页
微机原理(判断题)(指令正误)_第3页
第3页 / 共4页
微机原理(判断题)(指令正误)_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《微机原理(判断题)(指令正误)》由会员分享,可在线阅读,更多相关《微机原理(判断题)(指令正误)(4页珍藏版)》请在金锄头文库上搜索。

1、1、 指出下面指令正误,对错误指令说明错误原因(1) MOV DS ,100立即数不能直接送到段寄存器(2) MOV 1200H , 23H目的操作数不能确定是字节属性还是字属性等(3) MOV 1000H , 2000H 存储器之间不能直接传送数据(4) MOV 1020H , CX立即数不能作为目的操作数(5) MOV AX , BX+BP+0100H 目的操作数的寻址方式错误 BX 和 BP 都是基址寄存器(6) MOV CS , AX不能直接对 CS 赋值(7) PUSH ALPUSH 操作对象是字属性(8) PUSH WORD PTR SI(9) OUT CX , AL在 OUT 指

2、令中用 DX 寄存器存放端口地址而不是 CX(10) IN AL , 80H在 IN 指令中端口直接表示时,不加 (11) MOV CL , 3300H3300H 数太大,AL 寄存器不能存放(12) MOV AX , 2100HBP (13) MOV DS , ES段寄存器之间不能直接传送数据(14) MOV IP , 2000HIP 寄存器不能直接赋值,不能使用 MOV 指令(15) PUSH CS(16) POP CSPOP 指令不能使用 CS 寄存器,不能向 CS 寄存器中赋值2、 已知 3 个变量的数据定义如下所示,分析给定的指令是否正确,有错误时加以改正。DATA SEGMENTV

3、AR1 DB ?VAR2 DB 10VAR3 EQU 100DATA ENDS(1) MOV VAR1 , AX源操作数和目的操作数类型不匹配(2) MOV VAR3 , AXVAR3 是一个常量,值不变,不能赋值(3) MOV BX , VAR1MOV BX , 10源操作数和目的操作数类型不匹配(4) CMP VAR1 , VAR2存储器之间不能直接传送数据(5) VAR3 EQU 20EQU 不能重复定义3、 设 VAR1 和 VAR2 为字变量,LAB 为标号,分析下列指令错误之处,并加以改正(1) ADD VAR1 , VAR22 个数都是存储器操作数,不能直接放在指令中,指令要求必

4、须有一个是寄存器操作数(2) MOV AL , VAR2源操作数和目的操作数类型不匹配(3) SUB AL , VAR1源操作数和目的操作数类型不匹配(4) JMP LABSI 标号 LAB 位于代码段, SI位于数据段,两个不同的段,LABSI不能确定是代码段还是数据段(5) JNZ VAR1JNZ 指令的操作数应该是标号(6) JMP NEAR LAB正确指令是 JMP NEAR PTR LAB4、 说明下面指令哪些需要加 PTR 伪操作。BVAL DB 10H , 20HWVAL DW 1000H(1) MOV AL , BVAL(2) MOV DL , BX (3) SUB BX ,

5、2目的操作数不能确定是字节属性还是字属性等(4) MOV CL , WVAL源操作数和目的操作数类型不匹配, 正确指令是 MOV CL , BYTE PTR WVAL(5) ADD AL , BVAL+15、 程序在数据段中定义的数组如下NAMES DB TOM.DB 20DB ROSE.DB 30DB KATE.DB 25请指出下列指令是否正确,为什么(1)MOV BX , OFFSET NAMESMOV AL , BX+5 (2)MOV AX , NAMES源操作数和目的操作数类型不匹配(3)MOV AX , WORD PTR NAMES+1(4)MOV BX , 6MOV SI , 5M

6、OV AX , NAMESBXSI 类型不匹配,如果目的操作数变为 AL 正确(5)MOV BX , 6*2MOV SI , 5MOV AX , OFFSET NAMESBXSIINC AX 在汇编过程中,OFFSET 伪指令将得到变量的偏移值,但对于相对基址变址形成的值在汇编时值还未知使用 AX 存放地址不对,但如果使用 BX 存放地址,由于有第个原因也是不对的(6)MOV BX , 6MOV SI , 5LEA DI , NAMESBXSIMOV AL , DI 6、 下面有 4 条等值语句C1 EQU 1000C2 EQU 1C3 EQU 20000C4 EQU 25000下面指令哪些不

7、对,请说明原因(1)ADD AL , C1-C2C1-C2 的值是 999,超出字节表示范围(2)MOV AX , C3+C4(3)SUB BX , C4-C3(4)SUB AH , C4-C3-C1 C4-C3-C1 的值超出字节表示范围(5)ADD AL , C27、 分析下列指令正误,并加以改正(1)MOV AH , BX(2)MOV BX , SI (3)MOV AX , SIDI (4)MOV MYDATBXSI , ES:AX(5)MOV BYTE PTR BX , 1000(6)MOV BX , OFFSET MYDATSI (7)MOV CS , AX(8)MOV DS , B

8、P(9)MOV AX,70MUL 56 8、 下面哪些指令错误的?(假设 OP1、OP2 是已经用 DB 定义的变量)(1) CMP 15 , BX(2) CMP OP1 , 25(3) CMP OP1 , OP2(4) CMP AX , OP19、 假设 VAR1 和 VAR2 为字变量,LAB 为程序中的一个标号,试找出指令错误之处(1) ADD VAR1 , VAR2存储器中 2 个数不能直接相加(2) SUB AL , VAR1类型不匹配(3) JNZ VAR1转移指令后应该存放标号(4) JMP LABSI SI是数据段中一个数,LAB 是代码段中标号,LABSI不能确定是数据段还是

9、代码段(5) JMP NEAR LAB正确指令是 JMP NEAR PTR LAB10、 对于下面符号的定义,指出下面指令的正误A1 DB ?A2 DB 10K1 EQU 1024(1)MOV K1 , AX常量不能作为目的操作数(2)MOV A1 , AX类型不匹配(3)MOV BX , A1类型不匹配MOV BX , 1000目的操作数BX 对象是字节| 字| 双字,不确定(4)CMP A1 , A2存储器中 2 个数不能直接进行比较(5) K1 EQU 2048EQU 不能重复定义11、 指出下面伪指令表达式的错误,并改正之(1) STACK-SEG SEGMENT STACK 应改为

10、STACK_SEG SEGMENT STACK(2) DATA_SEG SEG应改为 DATA_SEG SEGMENT(3) SEGMENT CODE 没有段名(4) MYDATA SEGMENT DATAENDS 应改为 MYDATA ENDS(5) MAIN_PROC PROC FAREND MAIN_PROCMAIN_PROC ENDP不要 END MAIN_PROC12、 DATA DW 1234HMOV AL , HIGH DATADATA 是变量,HIGH 伪指令不能这样使用13、 JMP BX 不能判断BX 是段内还是段间,应改为 JMP WORD PTR BX或 JMP DWO

11、RD PTR BX14、 MUL AL , BL MUL BL MUL 指令只有一个操作数15、 SHL AL , 3如果移位次数不是 1,使用 CL 寄存器16、 mov cl, 50shl ax ,cl17、 mov cx, 50shl ax , cx应使用 CL 寄存器18、 PUSH WORD PTR 20BX+SI-2 19、 LEA BX , 4BX 20、 JMP BYTE PTR BX 21、 ADD BX , OFFSET A 22、 IN AL , DX23、 IN AX , DX24、 ORG 100HNAMES DB TOM.,20DB ROSE.,25DB KATE.,22(1)MOV BX , OFFSET NAMESMOV AX , BX+5 (2)MOV BX , OFFSET NAMES+11CMP BX , BYTE PTR NAMES+5存储器中 2 个数不能直接进行比较25、 PUSH 5 不能放立即数26、 XCHG AX , DSXCHG 指令中的段寄存器不能作为操作数XCHG AX , SI XCHG BX , SI XCHG 指令中操作数必须有一个是寄存器,不能 2 个操作数都是存储器操作数XCHG AX , CX27、 78 MOV AL , FFH 十六进制数如果以 AF 或 af 开头时,则前面加上0

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号