微机课件汇编习题

上传人:E**** 文档编号:90924415 上传时间:2019-06-20 格式:PPT 页数:33 大小:187KB
返回 下载 相关 举报
微机课件汇编习题_第1页
第1页 / 共33页
微机课件汇编习题_第2页
第2页 / 共33页
微机课件汇编习题_第3页
第3页 / 共33页
微机课件汇编习题_第4页
第4页 / 共33页
微机课件汇编习题_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《微机课件汇编习题》由会员分享,可在线阅读,更多相关《微机课件汇编习题(33页珍藏版)》请在金锄头文库上搜索。

1、一、选择题 1. 8086/8088的存储器组织是将存储器分段,可作为段起始地址的是: A. 185A2H B. 00020H C. 01004H D. 0A568H 2. 堆栈段中当前出栈的存储单元地址是: A. SS*10H+SP B. SS*10H+BP C. SS*10+SP D. SS*10+BP 3. 设DL=55H, 执行指令后能使DL中的数据为0AAH的指令是: A. TEST DL, 0AAH B. OR DL,0AAH C. NEG DL D. XOR DL,0FFH,4. 当 SS=9876H, SP=4328H, 执行POPF指令后,堆栈顶部的物理地址是: A. 9CA

2、8AH B. 9CA90H C. 9CA86H D. 0DB00H 5. DW 10H DUP ( 2 DUP(3), 300H ) 上述定义的数据单元中,能构成0303字存储单元的个数是: A. 10H B. 20H C. 1EH D. 0FH 6. 用一条指令实现将寄存器BX和SI的内容相加,结果并送入AX中,这条指令是: A. ADD AX,BXSI B. MOV AX,BXSI C. AND AX,BXSI D. LEA AX,BXSI,7. 设AX中有一带符号数8520H,执行SAR AX,1指令后,AX中的值是: A. 4290H B. 0A40H C. 0C290H D. 0C2

3、60H 8.下列指令执行后,能影响标志位的是: A. PUSHF B. POPF C. JNLE OPR D. LOOPZ LOP 9. 循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是: A. CX0 且 ZF=1 B.CX 0 且 ZF=0 C. CX 0 或 ZF=1 D.CX 0 或 ZF=0,10.下面两条传送指令中源操作数的寻址方式是: VAR1 DW 32H VAR2 EQU 32H . MOV AX, VAR1 MOV BX, VAR2 A. 都是立即寻址方式 B. 前一条是立即寻址,后一条是直接寻址 C. 前一条是直接寻址,后一条是立即寻址 D. 都是直接寻址,11

4、.设AX=0CCBBH , CF=1 AND AX,7FFEH RCR AX,1 上述两条指令执行后,AX和CF中的内容分别是什么? A. AX=265DH CF=0 B. AX=265DH CF=1 C. AX=A65DH CF=0 D. AX=A65DH CF=1 12.为在一连续的存储单元中依次存放41H,42H,.,48H,下面的 数据定义语句中有语法错误的是: A. DB 41H, 42H,4 3H, 44H, 45H, 46H, 47H, 48H B. DW 4142H, 4344H, 4546H, 4748H C. DB ABCDEFGH D. DW BA, DC, FE, HG

5、,二、简答题 1. 设BX=0FFFFH, DI=20H, DS=2000H, CL=8,(20020H)=4567H,下列各条指令分别执行后BX中的内容是什么? A. ROL BX,CL BX=( ) B. MOV BX,DI BX=( ) 2. DATA1 DB 1,2,3,4 DATA2 DW 3412H,4567H MOV AX, DATA1+1 ;将DAT1+1的字单元的内容送入AX MOV BL, DATA2+1 ; 将DAT2+1的字节单元的内容送入BL 上述两条MOV指令有语法错误,请按要求改正。,0FFFFH,4567H,MOV AX, WORD PTR DATA1+1,MO

6、V BL, BYTE PTR DATA1+1,三、程序分析题 1. DAT1 DW 1F28H DAT2 DB ? . XOR BL,BL MOV AX,DAT1 LOP: AND AX,AX JZ KK SHL AX, 1 JNC LOP ADD BL,1 JMP LOP KK: MOV DAT2,BL 执行完后,DAT2中的内容是什么? 在程序功能不变的情况下,可否用SHR指令代替SHL指令?,统计“1”的个数, (DAT1)=7, 可以用SHR代替。,2. DAT1 DB 87H DAT2 DB ? . MOV AH,0 MOV AL,DAT1 MOV CL,4 SHR AL,CL MO

7、V DL,10 MUL DL MOV BL,DAT1 AND BL,0FH ADD AL,BL MOV DAT2,AL 执行完后,DAT2中的内容是什么? 在程序功能不变的情况下,可否用SAR指令代替SHR指令?,(87/16)*10 的低8位+(87)的低4位= 不可以用SAR代替。,3. MOV AL,BL NOT AL XOR AL,BL OR BL,AL 程序执行完后, AL=( ), BL=( ),AL=( 11111111B ) BL=( 11111111B ),4. STC MOV CX, 0403H MOV AX, 0A433H SHR AX,CL XCHG CH,CL SHL

8、 AX,CL 程序执行完后, AX=( ), CF=( ),AX=(0433H/3)*16=4860H CF= 1,5. BYTE1 DB XX ;任意数 BYTE2 EQU 0FEH . MOV DL, BYTE1 OR DL, BYTE2 程序执行完后, DL=( )或( ),DL=FF 或 FE,6. DA_B DB 0CH,9,8,0FH,0EH,0AH,2,3,7,4 . XOR AX,AX XOR CL,CL XOR BX,BX LOP: TEST DA_BBX, 01H JE NEXT ADD AL, DA_BBX INC AH NEXT: INC BX INC CL CMP C

9、L,10 JNE LOP 程序执行完后, AH=( ), AL=( ),如果把JE NEXT 改为 JNE NEXT 那么AH=( ), AL=( )。,AH=4(奇数个数) AL=9+0FH+3+7 (奇数和),7. VAR_B DB 10 DUP(3,5,7,9) . LEA BX, VAR_B MOV CX, 10 XOR AX,AX LOP: ADD AL,BX CMP AL, 10 JB NEXT INC AH SUB AL,10 NEXT: INC BX LOOP LOP 程序执行完后, AH=( ), AL=( ),求前10个数中十位数和个位数。 AH=5 ( 十位数) AL=6

10、(个位数),四、程序填空题 1. 某程序段欲用单个字符显示的2号DOS功能调用去显示一字符串“STRING。试在下面空白处添上适当的指令。 STR1 DB STRING,$ . MOV BX, OFFSET STR1 LOP: MOV DL,BX MOV AH,2 INT 21H JNE LOP,INC BX,CMP DL, $,2. 该程序段的功能是依次产生0 9的10个ASC 码,并存入BUF1 数据区,请在空白处添上指令。 BUF1 DB 10 DUP(?) . LEA BX, BUF1 MOV CX, 10 XOR AL, AL LOP: MOV AH, AL ADD AL, 30H

11、INC BX INC AL LOOP LOP,MOV BX, AL,SUB AL, 30H,五、编制程序 1. 把两个非压缩BCD码组合为一个压缩BCD码,并存入DA3中。 DA1 DB XX ; 高位非压缩BCD码 DA2 DB XX ; 低位非压缩BCD码 DA3 DB ? 2. 已知DAT1字节单元有一个数据,编制一程序将该数据的低4位变为1010B,最高位(第7位)置1,其余3位不变,结果送DAT2单元。,3. 在N1和N2两数据区中,分别有10H个带符号数,试编制一源程序,找出对应项中较小的数据,并将这些数据存入N3数据区中(要求:对应项比较时必须用CMPS指令)。 DATA SEG

12、MENT N1 DB XX,XX,XX, N2 DB XX,XX,XX, N3 DB 10 DUP(0) DATA ENDS,例1:下面的程序执行后,(AX)=? (DX)=? CS:2000H MOV AX, 2012H 2003H MOV CX, 200CH 2006H PUSH CX 2007H CALL 4000H 200AH ADD AX, BX 200CH ADD AX, DX 200EH HLT CS:4000H MOV BX, 200AH POP DX RET,AX=401C DX=200A,SS:0000,SP,200C,200A,CX,IP,例1:下面的程序执行后,(AX)

13、=? (DX)=? CS:2000H MOV AX, 2012H 2003H MOV CX, 200CH 2006H PUSH CX 2007H CALL 4000H 200AH ADD AX, BX 200CH ADD AX, DX 200EH HLT CS:4000H MOV BX, 200AH POP DX RET,AX=401C DX=200A,例2. 下列指令中哪正确的,哪些是错误的?,不能对代码段寄存器CS进行写操作,xchg cs, ax mov ax, cs mov cs, ax mov bx, 1000 push cs pop cs push ip mov byte ptrb

14、x, 1000 mov bx, 5 mov cs,1000 mov dx, 1000 mov ax, dx mov al, bx add es, ax mov ss, cs inc bx,不能对代码段寄存器CS进行写操作,mov 等指令的两个操作数不能同时为存储器操作数,不能对代码段寄存器CS进行写操作,不能对指令指针寄存器 Ip 进行任何操作,字不能往字节单元里送,未区分往bx中送的数是字还是字节,不能对代码段寄存器CS进行写操作,DX不能做地址寄存器,寄存器不匹配,算术运算指令中段寄存器不能做操作数,不能在两个段寄存器之间传送数据,没有定义操作数的大小,MOV AX, BX BP MOV

15、AX, DI SI,没有这种寻址方式,没有这种寻址方式,例3:请求出AL中“1”的个数,存在AH中。 MOV AH, 0 Again: SHL AL, 1 ADC AH, 0 CMP AL, 0 JNZ Again HLT MOV AH,0 MOV CL,8 Again: SHL AL,1 JNC Next INC AH Next: DEC CL JNZ Again HLT,例4:若自Block开始的内存中有100个带符号数,找出最大值存入Max单元。,Block,65 F3 02 00 24 E0 05 00,MOV BX, Offset Block MOV AX,BX INC BX INC BX MOV CX,100 Again: CMP AX, BX JG NEXT MOV AX,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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