汇编语言程序设计复习题
填空题
AX又被称为___________器。
PF=1表示_________________为偶数。
操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段里,这种操作数称为___________。
62A0H + 9D60H = ________H。
标号和变量都有3种属性:___________________。
在另一个模块中定义而要在本模块中使用的符号必须使用______________伪操作。
逻辑运算是按_____________操作。
循环程序通常由__________________三部分构成
129 =________________B。
机器数88H,带符号十进制数_________。
将高级语言源程序翻译成机器语言程序的系统程序是_____________。
____________称为基址指针寄存器。
标识运算结果正负的标志是SF。SF=________时结果为正。
8086实模式下一个段的大小可达____________B。
8086中可用于寄存器间接寻址的四个寄存器是_______________________________。
在移位指令中,若移位次数大于1,则就将移位次数置于__________中。
宏由_________________________________这一对伪指令来定义。
二进制的基数为2,只有0,1两个数,并遵循_________________ 的原则。
访问堆栈的指令(如PUSH)只能使用 _________ 作为段寄存器。
指令CLD用于清除方向标志而指令_______________使方向标志置1。
简答题
试根据以下要求,分别写出相应的汇编语言指令或指令序列。
1) 把AX寄存器和BX寄存器的内容相减,2) 结果存入AX中。
3) 用BX和SI的基址变址寻址方式,4) 把存储器中的一个字节与DL的内容相加,5) 并把结果送回DL中。
6) 将AX的内容逻辑左移5位。
7) 将AX的内容,8) 减去0520H和上次运算的借位
9) 将变量名10) TABLE的段地址送AX
11) 将DI的高四位置为0
12) 输出一个字节到61H号端口
13) 将SI和DI的内容互换
设相关寄存器和存储区域如下图所示,写出以下各指令执行后AX的内容。
1)MOV AX,1100[BX] (AX)= _____________
2)MOV AX,[BX][SI] (AX)= _____________
下列每组指令中的两条指令有否区别?若没有区别,请说明它们的功能;若有区别,请说出它们的不同点。
1) MOV AX,OFFSET TABLE 和 LEA AX,TABLE
2) SUB DX,CX 和 CMP DX,CX
指出下列指令中的错误
MOV BL,CX
CMP [SI],[BX]
设有如下的程序段:
DA1 DB 12H
DA2 DB 22H
RES DB ?
┇
MOV AL,DA1
CMP AL,DA2
JAE L1
MOV RES,0
JMP NEXT
L1: MOV RES,0FFH
NEXT: ……
上述程序段运行后RES中的值=
程序段如下:
STRING DB ‘ABCDEFGHIJ'
:
MOV AH,01 ;从键盘输入字符1~9
INT 21H
AND AL,0FH
DEC AL
XOR AH,AH
MOV BX,OFFSET STRING
ADD BX,AX
MOV BL,[BX]
MOV AH,02H ;显示输出
INT 21H
:
试回答:如从键盘输入字符‘4',程序段有什么结果?
编程题
1. 编写完整程序,把从键盘读入的一个小写字母转换成相应的大写母,并输出。
2. 编写完整程序实现:定义一个数据区,它包含有33H,34H,35H和36H四个字符数据,把这个数据区复制20次,并显示出复制的结果。