《汇编语言程序设计》测试题
一、 填空:(15分)
1、计算机语言指令包括: , 。
2、数据寄存器组包括AX,BX,CX,DX ,其中AX称 ,BX称为 ,CX 称 ,DX 称 。四个段寄存器分别是 ,IP寄存器中存放的是 。
4、数据的传送的基本单位分为三种字节、字、双字,其中一个整数字节的表示范围是 ,一个整数字的表示范围是
。
5、堆栈是 的存储结构, 作为堆栈的栈顶指针寄存器使用。
6、DEBUG 中包括了若干条命令,其中U命令的功能是 ,D命令的功能是 ,查看寄存器内容的命令是 .
二、 计算题:(25)
1、 下列各数均为用16进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字符的ASCII码时,它们所表示的十进制数和字符是什么?
(1) 4F (2)2B
2、 完成下列二进制数的计算:
00010101+00001101=
00111110+00101001=
00011111—00000101=
3、 求下列二进制数的补码:
—00010011 —00111111
4、 求下列各数与 62A 0H的和,并根据结果设置标志位SF、ZF、CF、OF:
(1)4321H (2)9D60H
5、 写出下列存储单元地址的段地址、偏移地址和物理地址:
(1)3549:0075 (2)1FE0:00EA
三、 简答题:(20)
1、 如果一个堆栈从地址1250:0000开始,它的最后一个字的偏移地址为0100H,SP的内容为0052H:
问:(1)栈顶地址是多少?
(2)栈底地址是多少?
(3)在SS中的段地址是多少?
(4)存入数据 83A 0H后,SP的内容是多少?
2、 假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(BX)=0100H,(SI)= 00A 0H,(BP)=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?
(1)MOV AX,0ABH
(2)MOV AX,BX
(3)MOV AX,[100H]
(4)MOV AX,VAL
(5)MOV AX,[BX]
(6)MOV AX,ES:[BX]
(7)MOV AX,[BP]
(8)MOV AX,[BX+10]
(9)MOV AX,[BX][SI]
(10) MOV AX,[BX][SI]10
3、 指出下列指令中的错误:
(1)MOV AH,BX
(2)MOV [BX],[SI]
(3)MOV AX,[SI][DI]
(4)MOV MYDAT [BX][SI],ES:AX
(5)MOV BYTE PTR[BX],1000
(6)MOV BX,OFFSET MYDAT [SI]
(7)MOV CS,AX
(8)MOV DS,BP
4、 假定(DX)=10111001B,(CL)=03,(CF)=1,确定下列各条指令单独执行后,DX中的值。
(1)SHR DX,1
(2)SAR DX,CL
(3)SHL DL,1
(4)ROR DL,CL
(5)RCR DL,1
四、 阅读下列程序段,说明完成什么工作?(15)
1、 程序段如下:
MOV AX,1234H
MOV CL,4
ROL AX,CL
DEC AX
MOV CX,4
MUL CX
INT 20H
试问:
(1)每条指令执行完后,AX寄存器内容是什么?
(2)每条指令执行完后,CF,ZF,SF的值是什么?
(3)程序结束时,AX,DX的内容是什么?
2、 读下列程序,并指出此程序执行结束后,显示器所显示的内容:
A SEGMENT
NUM DB 00111001B
BUF DB 0AH,0DH,‘(NUM)=’
BUF1 DB 4 DUP (0)
A ENDS
B SEGMENT STACK
DB 200 DUP (0)
B ENDS
C SEGMENT
ASSUME DS:A,SS:STACK,CS:C
BEGIN:MOV AX,A
MOV DS,AX
LEA DI,BUF1
MOV AL,NUM
MOV CL,4
SHR AL,CL
OR AL,30H
MOV [DI],AL
INC DI
MOV AL,NUM
AND AL,0FH
OR AL,30H
MOV [DI],AL
INC DI
MOV BYTE PTR [DI],‘H’
INC DI
MOV BYTE PTR [DI],‘$’
LEA DX,BUF
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
C ENDS
END BEGIN
五、编写程序:(25分)
1、编写程序,求出首地址为DATA的10个字数组中的最小奇数,并存入AX中。
2、编写程序计算: S<—(A+B)—2*(A AND B)
3、从键盘输入一系列字符,以‘$’ 为结束符,然后对其中的数字字符计数,并显示结果。