88、DA1 DB 83H,72H,61H,94H,5AH ┇
MOV CX,WORD PTR DA1 AND CX,0FH MOV AL,DA1+3
SHL AL,CL 上述指令序列执行后,AL=__0A0H____,CL=__03H____。 CXFX
89、现有如下程序段: CXFX DATA SEGMENT DA3 EQU 1234H ORG 0020H DA4 EQU $-DA2 DA1 DW 12H,23H DA5 DB 31H,32H DA2 DB 11H,21H DATA ENDS
请回答:(1)该程序段已占有的存储字节数是多少?(2)符号名DA4的值是多少?符号名DA5的值是多少?
答:(1) 该程序段已占有的存储字节数是8个字节。(2) 符号名DA4的值为2,符号名DA5的值是0026H。
90、执行下列程序段后,回答问题。 CXFX ORG 1221H MOV BX,OFFSET NUM
NUM DW 12H MOV CL,BYTE PTR NUM+1 ? MOV CH,TYPE NUM MOV AX,NUM HLT
请问:(AX)=______,(BX)=______,(CX)=______。 答:(AX)=0012H (BX)=1221H (CX)=0200H
91、执行下列指令后AX、BX寄存器的内容? CXFX MOV SI,10H MOV AX,1234H MOV [SI+12H],AX
LEA BX,[SI]
MOV [SI+14H],BX
答:AX为1234H,BX为22H
LES BX,DWORD PTR [SI+12H]
92、试编制一程序段,用串操作指令实现以DA_BY为首址的20H个字节单元中存放相同字符‘Y’(设DA_BY存储区已有ES指向)。 BC
LEA DI,DA_BY
MOV CX,32 MOV AL,‘Y’ CLD
REP STOSB 93、在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首址的数据区中。 BC DATA SEGMENT
BUF1 DW-56,24,54,-1,89,-8?? BUF2 DW45,-23,124,345,-265,?? SUM DW10DUP(0)
11
DATA ENDS
94、编制程序段实现:将AX寄存器中的16位二进制数分成四组,每组4位,然后把这4组数分别放在AL、BL、CL、和DL中。 BC
MOV BH,AL MOV CH,AH
MOV AL,AH AND AL,0F0H MOV BL,AH AND BL,0FH MOV CL,BH AND CL,0F0H MOV DL,BH AND DL,0FH
95、在NUMW单元存放有一个0-65535范围内的整数,将该数除以500,商和余数分别存入QU1和REM单元,请在空行处各填上一条指令完善该程序。 CXTK
┇
MOV AX,NUMW
____ MOV BX,500_________ XOR DX,DX DIV BX
MOV QUI,AX
____ MOV REM,DX _________
96、已知数据段中定义 DAT1 DB 12H,34H,56H,78H MOV CX,0
MOV AX,WORD PTR DAT1 MOV CL,DAT1+3
当程序段执行完后AX=___3412H _____,CX=___0078H _____。 CXFX
97、DA1 DB 83H,72H,61H,94H,5AH ┇
MOV CX,WORD PTR DA1 AND CX,0FH MOV AL,DA1+3 SHL AL,CL
上述指令序列执行后,AL=___0A0H ____,CL=___03H ____。 CXFX 98、DA3 EQU WORD PTR DA4 DA4 DB 0ABH,89H ┇
SHR DA3,1 MOV DX,DA3 SHL DA4,1
12
MOV CX,DA3
上述程序段运行后,CX=____44AAH _____,DX=_____44D5H _______。 CXFX
99、编制完整程序实现下列算式:W=X+Y+36-Z。设X、Y、Z、W均为双字长数据,各自的低十六位数和高十六位数分别存放在X、X+2、Y、Y+2、Z、Z+2的存储单元中,结果的低十六位字和高十六位字分别存放在W和W+2两个单元中。 BC
DATA SEGMENT X DD ? Y DD ? Z DD ? W DD ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AX,X ADD AX,Y MOV BX,X+2 ADC BX,Y+2 ADD AX,36 ADC BX,0 SUB AX,Z SBB BX,Z+2 MOV W,AX MOV W+2,BX CODE ENDS END START
第3章:8086汇编语言程序格式
1、指令JMP FAR PTR DONE属于(段间转移直接寻址)。 DX
2、下列叙述正确的是(C)。 DX
A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令 3、一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是(12C59H)。 DX
4、某存储单元的物理地址是12345H,可以作为它的段地址有( D ) DX
A.2345H B.12345H
C.12340H D.1234H
5、在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是(进位值在CF中,校正后根据CF内容再加在AH中) DX
13
6、执行后使BX=0的同时也使CF=0,OF=0的指令是( XOR BX,BX ) DX
7、在执行下列指令时,需要使用段寄存器DS的指令是( D ) DX A.STOSW B.ADD AL,CL C.NEG BX D.INC DA[BX]
8、无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是( OR BH,01H ) DX
9、比较两个带符号的数A、B,当A=B时程序转移,测试的条件为( ZF=1 ) DX
10、使用DOS系统功能调用时,使用的软中断指令是( B ) DX A.INT 21 B.INT 10H C.INT 16H D.INT 21H
11、十六进制数0FFF8H表示的十进制正数为____+65528____,表示的十进制负数为____-32760____。TK
12、CPU的标志寄存器中标志位,可以分为两大类,其中一类称为___状态_____标志位,另一类称为____控制____标志位。 TK
13、当标志位___CF___=1时表示无符号数运算产生溢出,而当标志位__ OF____=1是表示带符号数运算产生溢出。 TK
14、在程序执行过程中,IP寄存器中始终保存的是 (下一条指令的首地址)。 DX 15、PSW寄存器中共有___6___位条件状态位,有___3___位控制状态位。()。 DX 16、串指令中的目的操作数地址是由___ ES:[DI]___提供。
17、8086CPU在基址加变址的寻址方式中,变址寄存器可以为(SI或DI)。 DX 18、什么叫寻址方式?常用的寻址方式有哪些? JD
答:寻址方式是指寻找指令中操作数所在地址的方法。
常用的寻址方式有:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、基址加变址、隐含寻址等。
第4章:顺序程序设计
1、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( D )。
A、CMP B、SUB C、AND D、MOV
第5章:分支程序设计
1、检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是( JC LOP1 ) DX
2、下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为( )。 DX
TEST BH,01H
__JNE_______K1 3、测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是( ②)。 DX
① TEST BL,4FH JZ NEXT
14
② XOR BL,4FH
JZ NEXT
③ AND BL,4FH JZ NEXT ④ OR BL,4FH
JZ NEXT
4、当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是( JNLE)。 DX 5、
MOV BL,64H MOV CL,03H XOR AX,AX AGAIN:ADD AL,BL ADC AH,0 DEC CL
JNZ AGAIN 问:(1)该程序段完成的功能是:将AX内容乘3送BX中 CXFX (2)AX=___012CH_____。 6、
MOV DL,AL NOT DL
TEST DL,04H
JE NEXT ┇ NEXT:?
若上述程序段执行时产生分支,说明AL中的数第几位一定为1?程序段执行后CF是多少? CXFX
第2位;CF=0
7、设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。 CXTK
TEST AX,8000H
__JE K1或JZ K1_________ MOV PLW,BX
JMP DONE
K1:__MOV PLW,A___________
DONE:
8、下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。试把空白处填上适当指令。 CXTK
___ XOR AH,AL____ AND AH,08H ____ JE ZERO_____ MOV AH,OFFH JMP NEXT
ZERO:MOV AH,0 NEXT:??
15