《第三章微机原理 习题课.docx》由会员分享,可在线阅读,更多相关《第三章微机原理 习题课.docx(11页珍藏版)》请在三一办公上搜索。
1、第三章微机原理 习题课第三章 习题课 一、选择题 1、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。 A、宏定义,宏调用 B、宏定义,宏展开 C、宏定义,宏调用,宏展开 D、宏定义,宏展开,宏调用 2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。 A、名字项 B、操作项 C、操作数项 D、注释项 3、下列叙述正确的是 A对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令 B对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令 C对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JG
2、E/JNL指令 D对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令 4、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( A、CMP B、SUB C、AND D、MOV 5、测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是。 D B C、MOV AL,BUF TEST AL,81H JNZ K3 MOV AL,0 K3: 7、下列描述中,执行循环的次数最多的情况是。 AMOV CX,0 BMOV CX,1 LOP:LOOP LOP LOP:LOOP LOP CMOV CX,0FFFFH DMOV CX,
3、256 LOP:LOOP LOP LOP:LOOP LOP 8、在下列指令中, D 指令的执行会影响条件码中的CF位。 AJMP NEXT BJC NEXT CINC BX DSHL AX,1 9、下列指令执行时出错的是。 AADD BUF1,BUF2 BJMP DWORD PTR DAT BX CMOV AX,BX+DI NUM DTEST AL,08H 10、在下列指令的表示中,不正确的是。 AMOV AL,BX+SI BJMP SHORT DONI CDEC BX DMUL CL 11、在进行二重循环程序设计时,下列描述正确的是。 A外循环初值应置外循环之外;内循环初值应置内循环之外,外
4、循环之内 B外循环初值应置外循环之内;内循环初值应置内循环之内 C内、外循环初值都应置外循环之外 D内、外循环初值都应置内循环之外,外循环之内 12、下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。 DATA SEGMENT FIRST DB , ,0H SECOND DB , DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX, MOV SI,0 NEXT: MOV AL,SECONDSI ADC FIRSTSI,AL INC SI LOOP NEXT MOV AL
5、,0 ADC AL, MOV FIRSTSI,AL MOV AH,4CH INT 21H CODE ENDS 2 D、MOV AL,BUF JNP K4 TEST AL,80H JNZ K4 MOV AL,0 K4: END START 请选择正确的答案填入空格中: A)8AH B)0BH C)D7H D)05H A)8AH B)0BH C)D7H D)05H A)8AH B)0BH C)D7H D)05H A)8AH B)0BH C)D7H D)05H A)3 B)2 C)1 D)4 A)CLC B)CLD C)STC D)CLI A)1 B)-1 C)0 D)0FFH 二、填空题 1、指令
6、JMP FAR PTR DONE属于寻址。 2、检查二个无符号数的关系,若要实现ALBL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是 3、下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为。 TEST BH,01H JNEK1 4、循环指令LOOPNZ终止循环的条件是( CX=0,或ZF=1 )。 5、条件转移指令JNE的测试条件为。 6、执行如下程序: MOV AX,0 MOV BX,1 MOV CX,100 A:ADD AX,BX INC BX LOOP A HLT 执行后 = 。 上题的程序执行后= 。 7、执行下面的程序段后,AL_
7、。 BUF DW 2152H,3416H,5731H,4684H MOV BX, OFFSET BUF MOV AL, 3 XLAT 3 8、 是过程定义结束伪指令,其前面需要加 配套使用。 是段定义结束伪指令,其前面需要加 配套使用。 9、 设VALA EQU 200 VALB EQU 30 VALC EQU 1BH 下列表达式的值各为多少? OR AND 0FH 三、程序阅读与设计 1、设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。 TEST AX,8000H JE K1或JZ K1 MOV PLW,BX JMP DONE
8、K1:MOV PLW,A DONE: 2、 MOV DL,AL NOT DL TEST DL,04H JE NEXT NEXT: 若上述程序段执行时产生分支,说明AL中的数第 位一定为1?程序段执行后CF是 ? 第2位;CF=0 3、下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。试把空白处填上适当指令。 _ XOR AH,AL_ AND AH,08H _ JE ZERO_ MOV AH,OFFH JMP NEXT ZERO:MOV AH,0 NEXT: 4、 AND AL,AL JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC
9、AL JZ BRCH3 4 : . 上述程序运行后,试回答: 当0时,程序转向BRCH1 当1时,程序转向BRCH2 当-1时,程序转向BRCH3 5、下列语句在存储器中分别为变量分配多少字节空间? VAR1 DB 10,2 VAR2 DW 5 DUP (?), 0 VAR3 DB HOW ARE YOU?,$ VAR4 DD -1, 1, 0 VAR1分配的字节空间为 字节;VAR2分配的空间为 字节;VAR3分配的空间为 字节,VAR4分配的空间为 字节。 6、以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。 BUF DB 5,6,7,
10、58H,62,45H,127, COUNT EQU $-BUF MAX DB? MOV BX,OFFSET BUF MOV CX,_COUNT-1_ MOV AL,BX LOP1:INC BX _ CMP AL,BX_ _ JAE NEXT MOV AL,BX NEXT:DEC CX _ JNZ LOP1_ _ MOV MAX,AL 7、请在图中正确填写执行这些伪指令后数据区的内容 STRING1 DB ABCD STRING2 DW ABCD STRING1 STRING2 5 8、读下面的程序并要求: 在每条语句后给出作用释。 画出程序流程图。 回答该程序完成什么功能? DSEG SEGM
11、ENT NUM1 DW 500 DUP NUM2 DB 150 DUP DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG MAIN PROC RAR START: PUSH DS XOR AX,AX PUSH AX MOV CX,64H MOV BX,300 MOV SI,0 MOV DI,0 NEXT:MOV AL,BYTE PTR NUM1BXSI ADD AL,AL MOV NUM2DI,AL INC DI INC SI LOOP NEXT RET MAIN ENDP CSEG ENDS END START 答:这个程序是将数据段中有效地址从NU
12、M1+300开始的连续100个任意8位二进制数分别乘以2后,存放到数据段中有效地址从NUM2开始的连续100个字节单元。 9、程序中下列语句在编译后装入内存时,操作系统为每个变量分配多少字节存储单元? 前15个字节中的内容是什么? ABC1 DW 0AH XYZ1 DB 4 DUP(?) STR1 DB “error a!”,“$” STR2 DB “OK!” ABC2 DD 1,2,8150H 答: ABC1 2字节, XYZ1 4字节, STR1 9字节, STR2 3字节, ABC2 12字节。 10.试用数据定义语句DB或DW改写下述两语句中的某一个,使它们在存储器中有完全相同的存储情
13、况。 VAR1 DB abcdefghij VAR2 DW 6162H,6364H,6566H,6768H,696AH 6 答:将第一个伪指令语句改写为VAR1 DW ba,dc,fe,hg,ji,第二个伪指令语句不变。或第一个伪指令语句不变,而将第二个伪指令语句改写为: VAR2 DB 62H,61H, 64H,63H, 66H,65H, 68H,67H, 6AH ,69H 11、下面程序的功能是什么? MOV CH,4 LAB:MOV CL,4 ROL BX,CL MOV DL,BL AND DL,0FH ADD DL,30H CMP DL,3AH JL PRINT ADD DL,7 PR
14、INT:MOV AH,02 INT 21H DEC CH JNZ LAB 显示输出BX寄存器里的内容 12、阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 ORG 100H BLOK DW X1,X2,XN COUNT EQU/2 RESULT DW COUNT,? LEA BX,BLOK-2 MOV CX,RESULT XOR AX,AX GOON:ADD BX,2 CMP AX,BX JAE NEXT MOV AX,BX NEXT:LOOP GOON MOV RESULT+2,AX 程序段执行完,回答下述问题 RESULT+2字存储单元的内容=_ BX=_ 程序循环次数
15、=_ 答: RESULT+2字存储单元的内容是MAX(X1, X2, XN) BX= 100H + 2(COUNT-1) 7 程序循环次数 COUNT 13、某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串COMPUTER.试在空白处填上适当的一条指令。 STRING DBCOMPUTER,$ MOV BX,0FFSET STRING LOP:MOV DL,BX MOV AH,02H INT 21H _ INC BX_ _CMP BX,24H_ JNE LOP 14、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 答: BEGIN:MOV AH,1 INT
16、 21H CMP AL,a JB STOP CMP AL,z JA STOP SUB AL,20H MOV DL,AL MOV AH,2 INT 21H JMP BEGIN STOP:RET 15、现有下列数据段: DATA SEGMENT STR1 DBABCDEFGHIJKL COUNT EQU STR1 BUF DB COUNT DUP DATA ENDS 下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区。试把程序中所空缺的指令填上。 MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF MOV CX,COUNT CLD或 STD LOP:MOVSB _ S
17、UB SI,2_或_ ADD DI,2_ LOOP LOP 8 16、下述程序段完成计算220之间的偶数的和,并存于AX中。试把空白处填上适当的指令。 XOR AX,AX MOV BX,0 MOV CX,10或MOV CX,0AH CONT: ADD AX,BX ADD BX,2 LOOP CONT 17、BEG为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在程序中的空格处填入适当的指令使其完整。 MOV CX,32H? LEA SI,BEG MOV DI,SI (1) DON:MOV AL,SI (2) MOV SI,AL (3) DEC DI LOOP DON HLT 答: (1) ADD DI, 99 (2) XCHG AL, DI (3) INC SI 18、FUNCTION MACRO P1,P2,P3 MOV AX,P1 P2 P3,1 ENDM 请回答下列问题: 上面程序段中,MACRO和ENDM是一对伪指令,在 宏 定义中,它们成对出现。 通过调用语句FUNCTION 100,SUB,AX调用之后,AX寄存器中的内容为 99 。 9
链接地址:https://www.31ppt.com/p-3123551.html