一.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。
1.逻辑地址
2.物理地址
3.标志寄存器
4.存储器寻址方式
5.补码
二.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。
1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少? 2.假设(DS)=0B00H,(BX)=0210H,对于指令MOV DS:120H[BX],AL,其目的操作数的物理地址为多少?
3.假设(BX)=0210H,(DI)=0060H,对于指令ADD DL,[BX][DI],其源操作数的偏移量为多少?
4.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=? 5.对于一个十进制数– 65,其二进制补码表示形式为多少?
三.排错题(本大题共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)= ,(BL)= , CF= ,OF= ,PF= .
2.阅读如下程序片段 MOV AL,0F3H MOV DL,0C4H ADD AL,DL AND AL,0FH 执行上述程序片段后,(AL)= ,(AF)= ,CF= ,OF= ,PF= .
3.阅读如下程序片段 MOV AL,7EH MOV CL,04H ROL AL,CL 执行上述程序片段后,(AL)= ,(CL)= , CF= ,OF= .
4.阅读如下程序片段 MOV AX,0632H MOV BX,0C202H SUB AX,BX INC AX 执行上述程序片段后,(AX)= ,(CF)= , OF= .
5.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28H MOV BX,0024H LEA BX,[BX] OR BX,0 ADC BX,[BX] 执行上述程序片段后,(BX)= ,(CF)= , OF= .
6.阅读如下程序片段,假设(SP)=0064H MOV AX,0001H MOV BX,0002H PUSH AX PUSH BX POP CX POP BX 执行上述程序片段后,(AX)= ,(BX)= , (SP)= , 五.程序设计题(本大题共2小题,第一小题7分,第二小题8分,共15分)
1.试编写一程序片段,实现BL高4位与低4位相互交换(7分)
2.试编写一程序片段,不使用乘除法指令,实现((AX)*5+14)/ 2的功能(AX中的数据理解为补码)(8分)
答案:
1.逻辑地址源程序经过汇编或编译后,形成目标程序,每个目标程序都是以0为基址顺序进行编址的,原来用符号名访问的单元用具体的数据——单元号取代。
这样生成的目标程序占据一定的地址空间,称为作业的逻辑地址空间,简称逻辑空间。
在逻辑空间中每条指令的地址和指令中要访问的操作数地址统称为逻辑地址。
2.物理地址内存是由若干个存储单元组成的,每个存储单元有一个编号,这种编号可惟一标识一个存储单元,称为内存地址(或物理地址)。
3.标志寄存器用来保存程序执行结果或者状态的寄存器,由各个标志位组成,标志寄存器中的标志位分两种类型:状态标志位和控制标志位,分别用来反应结果状态或控制程序执行的。
状态标志位常用的有ZF(零标志位)、SF(符号标志位)、PF(奇偶标志位)、CF(进位标志位)、OF(溢出标志位)、AF(辅助进位标志位); 控制标志位常用的有DF(方向标志位,用于串处理操作方向控制的)、TF(单步执行的跟踪标志位)、IF(中断允许标志位)。
4.存储器寻址方式在指令中,有时要寻找操作数的地址,有时要寻找转移地址(如转移指令、CALL指令等),这些寻找地址的方式就称为寻址方式。
8086微处理器寻找操作数地址有七种方式:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址等;寻找转移地址的方式有段内寻址和段间寻址,它们又分为段内直接、段内间接、段间直接、段间间接寻址等。
5.补码补码是计算机底层运算中,对运算符的一种表示方法。
主要功能是将减法的运算转化为加法运算。
简单的说对于一个二进制数来说,正数的话它的原码,反码,补码都一样. 如果机器数是负数,反码是对它的原码(符号位除外)各位取反而得到的. 补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。
二.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。
1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少? (1100100)2, (64)16 2.假设(DS)=0B00H,(BX)=0210H,对于指令MOV DS:120H[BX],AL,其目的操作数的物理地址为多少? 0B00H*10H+210H+120H = B330H 3.假设(BX)=0210H,(DI)=0060H,对于指令ADD DL,[BX][DI],其源操作数的偏移量为多少? 这道题说的不明白,偏移量是相对于谁的,如果相对于段,210H+60H=270H 如果相对于基址,就是DI,60H 4.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=? 执行push,指针减小,每次占用两个字节,60H-2*5 = 56H 5.对于一个十进制数– 65,其二进制补码表示形式为多少? (65)2 = 1000001,取反0111110,加一0111111,加符号10111111 三. 排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2分,分析正确给3分,判断错误不给分。
1.PUSH 5588H ;push的源操作数不能是立即数 2.MOV DS,1720H ;给段寄存器赋值不能给立即数 3.ADD AX,CL ;AX是16位的,CL是8位的,不能相加 4.AND AX,[DX] ;DX 不是基址寄存器 四.程序分析题(本大题共6小题,每小题5分,共30分)每小题列出了一段小的程序片段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果。
(寄存器中的内容请使用十六进制形式给出) 1.阅读如下程序片段 MOV AL,4CH MOV BL,0B5H ADD AL,BL 执行上述程序片段后,(AL)= 1H,(BL)=B5H , CF= 1,OF=0 ,PF=0 . 2.阅读如下程序片段 MOV AL,0F3H MOV DL,0C4H ADD AL,DL AND AL,0FH 执行上述程序片段后,(AL)=7 ,(AF)=0 ,CF=0 ,OF=0 ,PF=1. 3.阅读如下程序片段 MOV AL,7EH MOV CL,04H ROL AL,CL 执行上述程序片段后,(AL)= e7H,(CL)=4 , CF=1 ,OF=0 . 4.阅读如下程序片段 MOV AX,0632H MOV BX,0C202H SUB AX,BX INC AX 执行上述程序片段后,(AX)=4431H ,(CF)= 1, OF= 0. 5.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28H MOV BX,0024H ;bx = 24h LEA BX,[BX] ;bx = 56h,cf=1 OR BX,
0 ;bx=56h, cf=0 ADC BX,[BX] ;应该加56H那个单元的内容 执行上述程序片段后,(BX)= 56H+[01056H],(CF)=取决于[01056H]是多少, OF= 取决于[01056H]是多少,. 这道题如果不是你贴错了,就是出题的搞错了 6.阅读如下程序片段,假设(SP)=0064H MOV AX,0001H MOV BX,0002H PUSH AX PUSH BX POP CX POP BX 执行上述程序片段后,(AX)= 1,(BX)=1 , (SP)= 64H, 五.程序设计题(本大题共2小题,第一小题7分,第二小题8分,共15分) 1.试编写一程序片段,实现BL高4位与低4位相互交换(7分) push ax mov al,bl shl bx,1 shl bx,1 shl bx,1 shl bx,1 and al,f0 shr ax,1 shr ax,1 shr ax,1 shr ax,1 and al,0f or bl,al pop ax 2.试编写一程序片段,不使用乘除法指
(8分) push bx mov bx,ax shl 令,实现((AX)*5+14)/ 2的功能(AX中的数据理解为补码)
ax,1 shl ax,1 add ax,bx add ax,14 shr ax,1 pop bx。