注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

寄存器(二)  

2012-05-06 18:01:46|  分类: 8086饭客网汇编学 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

需要掌握的内容:

1. 了解存储器的机制

2. 学会物理地址的计算

3. 学习栈的一些应用

1、存储器

存储器由若干个存储单元组成。每一个存储单元为8位二进制数,即字节(byte,每个字节分配有唯一的地址。地址是无符号的二进制数从小到大排序。

任何相邻字节都可以构成一个字(word),并用地址值小的那个字节单元地址作为这个字单元的地址。

01916H

22H

字节单元

01917H

18H

字单元

01918H

23H

PC机把存储空间划分成若干个段(Segment),每个段由若干个连续的字节单元组成,每个段最大为64KB,最小为16个字节。存储器中的段可以任意划分,但每个段的起始地址不是任意的,必须为一个小节的开始。PC机将存储空间划分成若干个小节(Paragraph),每个小节由16个字节单元组成。

每个小节都有一个小节首地址。1M的存储空间可以划分为64K个小节。有64K个小节首地址,分别为00000H~FFFF0H。主存中每一段的起始地址称为段基址(Segment Base Address)段基址必须能被16整除。

存储器容量:1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB

地址总线:计算机处理、传输信息都是通过电信号,电信号当然要用导线传送,在计算机中专门有连接CPU和其他芯片的导线,通称为总线。总线就是一根根导线的集合。地址总线是用来指定存储单元的。

假设一个CPU10根地址总线,寻址能力为2^10=1024N根地址总线能力为2^N

1KB的存储器有1024存储单元,存储单元的编号是从0到1023

一个CPUN根地址线,则可以说这个CPU的地址总线宽度为N.

1CPU寻址能力为8KB,它的地址总线宽度为: 13  

8086CPU20根地址总线,寻址能力达到2^20=2^10*2^10=1024*1024=1MB16CPU一次性可处理16位数据,那么16CPU的寻址能力达到2^16=2^10*2^6=1024*2^6=1024^64=64KB

物理地址=段地址(Segment Address*16+偏移地址(Offset Address)

CS21F0H

IP0060H

21F0H*16+0060H=21F00H+0060H=21F60H

一个R进制数M乘以它的基数R就相当于左移1位,除以基数R就相当于右移1位。

SS81B0H

SP2101H

81B0H*16+2101H=81B00H+2101H=83C01H

2、栈

栈的操作规则是:LIFOLast In First Out)后进先出。

01913H

01914H

01915H

01916H

01917H

01918H

PUSH(入栈)

POP(出栈)

入栈与出栈操作都是以字为单位进行的。

mov ax,0123H

push ax

mov bx,2266H

push bx

pop ax

pop bx

任意时刻,SSSP指向栈顶。

push ax由以下两步完成。

1. sp=sp-2,sp指向当前栈顶前面的单元,以当前栈顶前面的单元为新的栈顶。

2. ax中的内容送往ss:sp指向的内存单元处,ss:sp此时指向新的栈顶。

pop axpush ax刚好相反。

1. ss:sp指向的内存单元处的数据存入ax

2. sp=sp+2ss:sp指向当前栈顶下面的单元,以当前栈顶下面的单元为新的栈顶。

编程:

1、将10000H1000FH这段空间当作栈,初始状态栈是空的,将AXBXDS中的数据入栈。

mov ax,1000H

mov ss,ax

mov sp,0010H

push ax

push bx

push ds

2、将10000H1000FH这段空间当作栈,初始状态栈是空的,设置AX=001AHBX=001BH,利用栈,交换AXBX中的数据。

mov ax,1000H

mov ss,ax

mov sp,0010H

mov ax,001AH

mov bx,001BH

push ax

push bx

pop bx

pop ax

3、利用栈在10000H处写入字型数据2266H

mov ax,1000H

mov ss,ax

mov sp,2

mov ax,2266H

push ax

10000H

1000DH

1000EH

1000FH

10010H

10011H

pop ax

  评论这张
 
阅读(100)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017