
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,其目的 *** 作数的物理地址为多少?
0B00H10H+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-25 = 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.试编写一程序片段,不使用乘除法指令,实现((AX)5+14)/ 2的功能(AX中的数据理解为补码)(8分)
push bx
mov bx,ax
shl ax,1
shl ax,1
add ax,bx
add ax,14
shr ax,1
pop bx
一、主体不同
1、变址寻址:把变址寄存器的内容与指令地址码部分给出的地址之和作为 *** 作数的地址来获得所需要的 *** 作数。
2、基址寻址:将CPU中基址寄存器的内容,加上指令格式中的形式地址而形成 *** 作数的有效地址。
二、特点不同
1、变址寻址:指令地址码部分给出的地址A和指定的变址寄存器R的内容K通过地址加法器相加,所得的和作为地址从存储器中读出所需要的 *** 作数。
2、基址寻址:被引用的专用寄存器含有一个存储器地址,地址字段含有一个相对于该地址的偏移量。
三、方式不同
1、变址寻址:在多道程序的环境下,用户不可决定自己使用的主存区,因而在编程时常按(以零为基准地址)相对地址来编写。
2、基址寻址:当程序被放入主存时, *** 作系统根据主存空间情况给基址寄存器赋值,从而将虚地址转化为实地址。
参考资料来源:百度百科-基址寻址
参考资料来源:百度百科-变址寻址
所谓的四个空间是:片内程序存储区、片外程序存储区、片内数据存储区、片外数据存储区。
片内程序存储区和片外程序存储区是统一编址的,所以在逻辑上只有三个:
片内数据存储区、片外数据存储区和片内外统一编址的程序存储区。
以上就是关于很简单的问题全部的内容,包括:很简单的问题、请教变址寻址和基址寻址的区别、如何认识AT89C51单片机存储器空间在物理结构上可划分为4个空间,而在逻辑上又可划分为3个空间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)