汇编语言复习题求答案

汇编语言程序设计复习题

填空题
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次,并显示出复制的结果。

第1个回答  2007-04-06
主累加器。
运算结果低8位中1的个数
立即数
10000
段属性、偏移量属性、类型属性
EXTRN

初始化、循环体部分、控制部分
10000001
-120
编译程序
BP
0
64K
BX、BP、SI、DI
CL
MACRO、ENDM
逢二进一
SS
STD

简答题

1-2) SUB AX,BX
3-5) ADD DL,[BX][SI]
6) MOV CL,5
SHL AX,CL
7-8) SBB AX,0520H
9-10)MOV AX,SEG TABLE
11) AND DI,0FFFFH
12) OUT 61H,AL
13) XHG SI,DI

设相关寄存器和存储区域如下图所示,写出以下各指令执行后AX的内容。
图呢?

下列每组指令中的两条指令有否区别?若没有区别,请说明它们的功能;若有区别,请说出它们的不同点。
1)有区别,计算偏移地址的时间不同,offset是运算符,在汇编时计算;lea是指令,在生成可执行文件并运行时计算。
2) 有区别,sub是减法指令,完成dx-cx并把结果存放到dx中;cmp是比较指令,完成dx-cx,影响标志位但是不保存结果。

指出下列指令中的错误
类型不匹配
双操作数指令不允许两个操作数都是存储器操作数

设有如下的程序段:
上述程序段运行后RES中的值=0

程序段如下:
试回答:如从键盘输入字符‘4',程序段有什么结果?显示“D”

编程题
1.
cseg segment
assume cs:cseg
begin:
mov ah,1
int 21h
and al,0dfH
mov dl,al
mov ah,2
int 21h
mov ah,4ch
int 21h
cseg ends
end begin
2.
dseg segment
num db 20 dup(33h,34h,35h,36h)
dseg ends
cseg segment
assume cs:cseg,ds:dseg
begin:
mov ax,dseg
mov ds,ax
lea bx,num
mov cx,80
next:
mov dl,[bx]
mov ah,2
int 21h
inc bx
loop next
mov ah,4ch
int 21h
cseg ends
end begin本回答被提问者采纳
相似回答