TRAN: XLAT TABLE
MOV DL,AL ADD DL,30H MOV [SI],DL INC AL LOOP TRAN
2、将存放在0A00H单元和0A02H单元的两个无符号数相乘,结果存放在地址为0A04H开始的单元中。 【解】 MOV AL,BYTE PTR [0A00H] MUL BYTE PTR [0A02H] MOV WORD PTR [0A04H],AX 3、编程序将AX中数,最高位保持不变,其余全部左移4位。 【解】 MOV BX,AX AND BX,8000H MOV CL,4 SHL AX,CL AND AX,7FFFH OR AX,BX
4、将0400H单元中的数,低4位置零,高4位保持不变。 【解】 AND BYTE PTR [0400H],0F0H 5、将BX中的数,对高位字节求反,低位字节保持不变。 【解】 XOR BX,0FF00H
6、检测BX中第13位(D13),为0时,把AL置0,为1时,把AL置1。 【解】 TEST BX,2000H JZ SHORT NEXT MOV AL,0FFH JMP SHORT EXIT NEXT: MOV AL,0 EXIT: …… 7、从1000H开始,存放有200个字节,要查出字符#(ASCII码为23H), 把存放第一个#的单元地址送入BX中。 【解】 LEA DI,[1000H] MOV AL,23H MOV CX,200 CLD REPNE SCASB DEC DI MOV BX,DI
8、编程计算((X+Y)*10)+Z)/X,X、Y、Z都是16位无符号数,结果存在RESULT开始的单元。 【解】 MOV AX,X ADD AX,Y MOV BX,10 MUL BX ADD AX,Z ADC DX,0 DIV X MOV RESULT,AX
9、用简单指令编程求-3/2=?,将商存DL,余数存DH单元。用TD调试后,写出DL,DH的内容。 【解】 MOV AX,-3 MOV BL,2 IDIV BL MOV DL,AL MOV DH,AH (DL)=0FFH (DH)=0FFH
10、变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。 【解】 MOX AX,N1 SUB AX,N2 AAS
11、利用字串操作指令,将1000H~10FFH单元全部清零。 【解】 LEA DI,[1000H] MOV AX,0 MOV CX,128 CLD REP STOSW 12、比较两个5字节的字符串OLDS和NEWS, 如果OLDS字符串与NEWS不同, 则执行NEW_LESS, 否则顺序执行程序。 【解】 LEA SI,OLDS LEA DI,NEWS MOV CX,5 CLD REPE CMPSB CMP CX,0 JNZ NEW_LESS ?? NEW_LESS: ??
第5章 宏汇编语言
一、选择题:
1、在汇编语言源程序中,用于指示汇编程序如何汇编的指令是( )。
A. 机器指令 B. 伪指令 C. 宏指令 D. 汇编指令 【解】B
2、下列指令语句中的标识符均为字变量,其中非法指令是( )。 (1)MOV DATA[BX+2][DI],AX (2)MOV DATA,DATA (3)MOV AL,DATA (4)MOV SP,DATA
(5)MOV BH,DATA[SI+2][DI]
A. (2),(3),(5) B.(1),(3),(4) C. (1),(3),(5) D.(2),(3),(4) 【解】A
3、对下边的数据定义: DATA1 DB ?ABCD?
DATA2 DW 34H,1122H
单独执行以下两条MOV指令后,相关寄存器的内容为( )。 MOV AL,DATA1 MOV BX,DATA2
A. 41H,3400H B. 41H,0034H C. 41H,42H D. 41H,1134H 【解】B
4、欲定义一个含20个字符的字符串,须用到的伪指令是( )。
A.DB B.DW C.DD D.EQU 【解】A
5、在汇编语言源程序的设计中,将源程序编译成目标文件命令是( )。 A.MASMS B.MASM C.EDIT D.TD 【解】B
6、已知数据段的定义如下: DATA SEGMENT D1 DW 10 DUP(?) D2 DB ?Hello!? D3 EQU 100 D4 DD 1234H D5 DB 56H DATA ENDS
则变量D5的偏移地址是( )。
A.0010H B.001FH C.001EH D.001DH 【解】C
7、汇编语言源程序中,不需要初始化段寄存器的逻辑段是( )。 A.代码段 B.数据段 C.附加段 D.堆栈段 【解】A
8、数据段的定义如下: DATA SEGMENT
V1 DW 12H,34H,56H,78H V2 DD ? DATA ENDS
执行以下程序段后,变量V2的内容是( )。 MOV AL,BYTE PTR V1 MOV AH,BYTE PTR V1+2 MOV WORD PTR V2+2,AX MOV AX,V1+5 MOV BX,V1+3 OR AL,BH
MOV WORD PTR V2,AX HLT
A.12345678H B.78563412H C.56781234H D.34127856H 【解】D
9、DATA SEGMENT PARA STACK ?STACK? DW 100 DUP(?) TOP EQU $ DATA ENDS
以上程序段的作用是( )。
A. 定义100个字节的堆栈段 B. 定义200个字节的堆栈 C. 定义100个字节的数据段 D. 定义200个字节的数据段 【解】B
10、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( )。
A.名字项 B.操作符项 C.操作数项 D.注释项 【解】B
11、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( )。 A.CMP B.SUB C.AND D.MOV 【解】D
12、为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是( )。 A.INC CX ;JZ MINUS B.SUB CX,0FFFFH;JZ MINUS C.AND CX,0FFFFH;JZ MINUS D.XOR CX,0FFFFH;JZ MINUS 【解】C
13、AL和VAR字节单元中分别存放一个带符号数,执行CMP AL,VAR时,如AL>VAR,那么溢出位和符号位的关系是( )。
A.OF=SF B.OF≠SF C.OF=SF=1 D.OF=SF=0 【解】A
14、以下指令格式正确的是( )。
A.MOV AX,[SI+BX+DATA] B.JNZ WORD PTR[BX] C.OUT DX,[DI] D.MUL AL,15 【解】A