四川大学汇编语言期中试卷
2014年〈汇编语言程序设计〉半期试题(堂下开卷)
一.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。 1. 逻辑地址:逻辑地址由两个16位的地址分量构成,一个为段基值,另一个为偏移量。
两个分量均为无符号数编码
2. 物理地址:出现在CPU 外部地址总线上的寻址物理内存的地址信号,是地址变换的最
终结果
3. 标志寄存器:存放条件标志、控制标志寄存器,主要用于反映处理器的状态和运算结果
的某些特征及控制指令的执行
4. 存储器寻址方式:处理器根据指令中给出的地址信息来寻找内存中地址的方式
5. 补码:1,对正数来说,补码即原码。
2,对负数来说,补码是原码的反码再加上1。
二.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。
1. 将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?
(100)0=(1100100)13=(64)H
2. 假设(DS )=0B00H,(BX )=0210H,对于指令MOV DS :120H[BX],AL ,其目的
操作数的物理地址为多少?
0B00+(02101120)=0B330H
3. 假设(BX )=0210H,(DI )=0060H,对于指令ADD DL ,[BX][DI],其源操作数的偏
移量为多少?
0210+0060=0279H
4. 假设当前(SP )=0060H,连续执行5条PUSH 指令后,(SP )=?
0060-(5X2)H=0056H
5. 对于一个十进制数 – 65,其二进制补码表示形式为多少?
10111111
三.排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指
令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2分,分析正确给3分,判断错误不给分。
1. PUSH 5588H 错误 操作数不能是直接数
2. MOV DS , 1720H 错误 不能对对寄存器直接传送立即数
3. ADD AX , CL 正确
4. AND AX ,[DX] 正确
四.程序分析题(本大题共6小题,每小题5分,共30分)每小题列出了一段小的程序片
段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果。(寄存器中的内容请使用十六进制形式给出)
1. 阅读如下程序片段
MOV AL ,4CH
MOV BL ,0B5H
ADD AL ,BL
执行上述程序片段后,(AL )= 4CH (1分),(BL )= B5H (1分), 1分),(1分),(1分)
2. 阅读如下程序片段
MOV AL ,0F3H
MOV DL ,0C4H
ADD AL ,DL
AND AL ,0FH
执行上述程序片段后,(AL )= 01H (1分),(AF )= 1H (1分), 1分),(1分),(1分)
3. 阅读如下程序片段
MOV AL ,7EH
MOV CL ,04H
ROL AL ,CL
执行上述程序片段后,(AL )= E7H (2分),(CL )= 04H (1分), 1分),(1分)
4. 阅读如下程序片段
MOV AX ,0632H
MOV BX ,0C202H
SUB AX ,BX
INC AX
执行上述程序片段后,(AX )= 4431H (2分),(CF )= 1H (2分), 1分)
5. 阅读如下程序片段,假设(DS )=0100H,字节单元(01024H )=56H,字节单元(01025H )
=28H
MOV BX ,0024H
LEA BX ,[BX]
OR BX ,0
ADC BX ,[BX]
执行上述程序片段后,(BX )= 287AH (3分),(CF )= OH (2分),
(1分)
6. 阅读如下程序片段,假设(SP )=0064H
MOV AX ,0001H
MOV BX ,0002H
PUSH AX
PUSH BX
POP CX
POP BX
执行上述程序片段后,(AX )= 0001H (2分),(BX )= 0001H (2分),
(SP )= 0064H (1分)
五.程序设计题(本大题共2小题,第一小题7分,第二小题8分,共15分)
1. 试编写一程序片段,实现BL 高4位与低4位相互交换(7分)
MOV CL,O4H
VOL BL,CL
2. 试编写一程序片段,不使用乘除法指令,实现((AX )*5+14)/ 2的功能(AX 中的数
据理解为补码)(8分)
MOV CL,O4H
SHL AX,CL
ADD AX,AX
MOV CL,O1H
SHR AX,CL