第三章习题课一、选择题1、在汇编语言程序得开发过程中使用宏功能得顺序就是()。
A、宏定义,宏调用B、宏定义,宏展开C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略得项就是()。
A、名字项B、操作项C、操作数项D、注释项3、下列叙述正确得就是( )A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令4、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件得指令有( )、A、CMPB、SUBC、ANDD、MOV5、测试BL寄存器内容就是否与数据4FH相等,若相等则转NEXT处执行,可实现得方法就是( )。
A TEST BL,4FHJZ NEXTB XOR BL,4FHJZ NEXTC AND BL,4FHJZ NEXTD OR BL,4FHJZ NEXT6、检查BUF得内容就是否为正偶数,如就是正偶数,则令AL=0。
下面程序段正确得就是( )。
A、MOV AL,BUF JS K1SHR AL,1JNC K1MOV AL,0K1:……B、MOV AL,BUF AND AL,11 JNZ K2MOV AL,0K2:……C、MOV AL,BUFTEST AL,81HJNZ K3MOV AL,0K3:……7、下列描述中,执行循环得次数最多得情况就是()。
A.MOV CX,0B.MOV CX,1LOP:LOOP LOP LOP:LOOP LOPC.MOV CX,0FFFFHD.MOV CX,256LOP:LOOP LOP LOP:LOOP LOP8、在下列指令中, 指令得执行会影响条件码中得CF位。
A.JMP NEXTB.JC NEXTC.INC BXD.SHL AX,19、下列指令执行时出错得就是()。
A.ADD BUF1,BUF2B.JMP DWORD PTR DAT [BX]C.MOV AX,[BX+DI] NUMD.TEST AL,08H10、在下列指令得表示中,不正确得就是()。
A.MOV AL,[BX+SI]B.JMP SHORT DONIC.DEC [BX]D.MUL CL11、在进行二重循环程序设计时,下列描述正确得就是()。
A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内B.外循环初值应置外循环之内;内循环初值应置内循环之内C.内、外循环初值都应置外循环之外D.内、外循环初值都应置内循环之外,外循环之内12、下面就是多字节加法程序,第一个数就是8A0BH,第二个数就是D705H。
DA TA SEGMENTFIRST DB (1), (2),0HSECOND DB (3), (4)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DA TAMOV DS,AXMOV CX, (5)MOV SI,0(6)NEXT: MOV AL,SECOND[SI]ADC FIRST[SI],ALINC SILOOP NEXTMOV AL,0ADC AL, (7)MOV FIRST[SI],ALMOV AH,4CHINT 21HCODE ENDSEND START请选择正确得答案填入空格中:(1)A)8AH B)0BHC)D7H D)05H(2)A)8AH B)0BHC)D7H D)05H(3)A)8AH B)0BHC)D7H D)05H(4)A)8AH B)0BHC)D7H D)05H(5)A)3 B)2C)1 D)4(6)A)CLC B)CLDC)STC D)CLI(7)A)1 B)-1C)0 D)0FFH二、填空题1、指令JMP FAR PTR DONE属于()寻址。
2、检查二个无符号数得关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟得分支指令就是()3、下面指令序列测试BH中得数就是否为奇数,若为奇数则转移至K1处,横线处得指令应为( )。
TEST BH,01H___K14、循环指令LOOPNZ终止循环得条件就是( )。
5、条件转移指令JNE得测试条件为()。
6、执行如下程序:MOV AX,0MOV BX,1MOV CX,100A:ADD AX,BXINC BXLOOP AHLT执行后 (BX)= ()。
上题得程序执行后(AX)= ()。
7、执行下面得程序段后,AL______。
BUF DW 2152H,3416H,5731H,4684HMOV BX, OFFSET BUFMOV AL, 3XLAT8、就是过程定义结束伪指令,其前面需要加配套使用。
就是段定义结束伪指令,其前面需要加配套使用。
9、设V ALA EQU 200V ALB EQU 30V ALC EQU 1BH下列表达式得值各为多少?(2)(V ALB AND 0FH)OR (V ALB XOR 0FH)(3)(V ALA GE V ALB )AND 0FH三、程序阅读与设计1、设AX,BX中得数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。
TEST AX,8000H___________MOV PLW,BXJMP DONEK1:____________DONE:2、MOV DL,ALNOT DLTEST DL,04HJE NEXT┇NEXT:…若上述程序段执行时产生分支,说明AL中得数第位一定为1?程序段执行后CF就是?3、下面程序段就是判断寄存器AH与AL中第3位就是相同,如相同,AH置0,否则AH置全1。
试把空白处填上适当指令。
___ XOR AH,AL____AND AH,08H____ JE ZERO_____MOV AH,OFFHJMP NEXTZERO:MOV AH,0NEXT:……4、AND AL,ALJZ BRCH1RCR AL,1JZ BRCH2RCL AL,1INC ALJZ BRCH3: 、、、、、、上述程序运行后,试回答:(1)当(AL)=__________时,程序转向BRCH1(2)当(AL)=_________时,程序转向BRCH2(3)当(AL)=_________时,程序转向BRCH35、下列语句在存储器中分别为变量分配多少字节空间? V AR1 DB 10,2V AR2 DW 5 DUP (?), 0V AR3 DB ‘HOW ARE YOU?’,’$’ V AR4 DD -1, 1, 0V AR1分配得字节空间为 字节;V AR2分配得空间为 字节;V AR3分配得空间为 字节,V AR4分配得空间为 字节。
6、以BUF 为首址得字节单元中,存放了COUNT 个无符号数,下面程序段就是找出其中最大数并送入MAX 单元中。
BUF DB 5,6,7,58H,62,45H,127,…… COUNT EQU $-BUF MAX DB ? ┇MOV BX,OFFSET BUF MOV CX,_____ MOV AL,[BX] LOP1:INC BX _________ __ JAE NEXT MOV AL,[BX] NEXT:DEC CX_____ ________________7、请在图中正确填写执行这些伪指令后数据区得内容STRING1 DB ‘ABCD ’ STRING2 DW ‘ABCD ’8、读下面得程序并要求:(1)在每条语句后给出作用释。
(2)画出程序流程图。
(3)回答该程序完成什么功能?DSEG SEGMENTNUM1 DW 500 DUP(?) NUM2 DB 150 DUP(?) DSEG ENDSCSEGSEGMENTASSUME CS:CSEG,DS:DSEGMAIN PROC RAR START: PUSH DS XOR AX,AX PUSH AX MOV CX,64H MOV BX,300 MOV SI,0STRING1STRING2MOV DI,0NEXT:MOV AL,BYTE PTR NUM1[BX][SI]ADD AL,ALMOV NUM2[DI],ALINC DIINC SILOOP NEXTRETMAIN ENDPCSEG ENDSEND START答:9、程序中下列语句在编译后装入内存时,操作系统为每个变量分配多少字节存储单元? 前15个字节中得内容就是什么?ABC1 DW 0AHXYZ1 DB 4 DUP(?)STR1 DB “error a!”,“$”STR2 DB “OK!”ABC2 DD 1,2,8150H答:10、试用数据定义语句DB或DW改写下述两语句中得某一个,使它们在存储器中有完全相同得存储情况。
VAR1 DB ‘abcdefghij’VAR2 DW 6162H,6364H,6566H,6768H,696AH答:11、下面程序得功能就是什么?MOV CH,4LAB:MOV CL,4ROL BX,CLMOV DL,BLAND DL,0FHADD DL,30HCMP DL,3AHJL PRINTADD DL,7PRINT:MOV AH,02INT 21HDEC CHJNZ LAB12、阅读如下程序段,回答所提出得问题,假定X1,X2,XN为无符号数。
ORG 100HBLOK DW X1,X2, (X)COUNT EQU($-BLOLOK)/2RESULT DW COUNT,?……LEA BX,BLOK-2MOV CX,RESULTXOR AX,AXGOON:ADD BX,2CMP AX,[BX]JAE NEXTMOV AX,[BX]NEXT:LOOP GOONMOV RESULT+2,AX程序段执行完,回答下述问题RESULT+2字存储单元得内容=______BX=______程序循环次数=______答:13、某程序欲用单个字符显示得2号功能调用去显示STRING中得字符串‘PUTER’(不显示字符‘$’!)、试在空白处填上适当得一条指令。
STRING DB‘PUTER’,‘$’┇MOV BX,0FFSET STRINGLOP:MOV DL,[BX]MOV AH,02HINT 21H_____ ____________________________JNE LOP14、试编写一个汇编语言程序,要求对键盘输入得小写字母用大写字母显示出来。
答:15、现有下列数据段:DATA SEGMENTSTR1 DB‘ABCDEFGHIJKL'COUNT EQU -STR1BUF DB COUNT DUP(0)DATA ENDS下面程序段就是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF得最后一个单元,STR1中最后一字符送到BUF得第一个单元)。