鱼C论坛

 找回密码
 立即注册
查看: 2155|回复: 4

[技术交流] 汇编笔记之3.寄存器(内存访问)

[复制链接]
发表于 2012-11-23 21:18:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 烧点饭 于 2012-11-24 10:44 编辑

  • CPU中,用16位来存储一个字。高8位存放高位字节,低8位存放低位字节。
  • 内存存储中,内存单元是字节单元(1单元=1字节),则一个字要用两个地址连续的内存单元存放。
  • 内存存储中,高位字节,和低位字节是相对的,指令指向的是低位字节。
  • 字单元,即存放一个字型数据(16位=2字节)的内存单元,由两个地址连续的内存单元组成。
  • 8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址
  • MOV指令的几种种功能:
    • 将数据直接送入寄存器 mov ax,1000H
    • 将一个寄存器中的内容送入另一个寄存器 mov ax,bx;mov ds,ax
    • 将一个内存单元中的内容送入寄存器 mov ax,[...]
    • 将寄存器中的内容送入内存单元 mov [...],ax
    • ...
  • “[...]”表示一个内存单元,“[...]”中的内容则表示内存单元的偏移地址。
  • 8086CPU中,不能给DS寄存器直接赋值,需要通过通用寄存器间接赋值,如“段地址-->通用寄存器-->DS寄存器”。
  • add指令表示相加,sub指令表示相减。
  • [address]便是一个偏移地址为address的内存单元。
  • mov、add、sub是具有两个操作对象的指令。jmp是具有一个操作对象的指令。
  • 是一种具有特殊的访问方式的存储空间,它的特殊性就在于,先进后出的特性。
  • 8086CPU提供了入栈和出栈指令,最基本的两个是PUSH(入栈)POP(出栈)。
  • 8086CPU的入栈和出栈操作都是以字(2字节)为单位进行的。
  • 8086CPU中,有两个寄存器,段寄存器SS和寄存器SP,栈顶的段地址存放在SS中,偏移地址存放在SP中。
  • 任意时刻,SS:SP指向栈顶元素
  • PUSH入栈时,SP=SP-2(1字),栈顶从高地址向低地址方向增长,出栈时则SP=SP+2.
  • 栈为空时,栈中没有元素,也就不存在栈顶元素,所以SS:SP只能指向最底部单元下面的单元
  • 8086CPU不能保证我们对栈的操作不会超界,它只知道栈顶在何处(有SS:SP指示),并不知道这个栈有多大。
  • push和pop指令可以有如下形式:
  • push  寄存器
  • pop   寄存器
  • push  段寄存器
  • pop   段寄存器
  • push  内存单元
  • pop   内存单元
21.  请灵活,仔细运用CS:IP(指令),DS:[...](数据),SS:SP(栈)
  • 对于数据段,将它的段地址放在DS中,用mov,add,sub等访问内存单元的指令时,CPU就将我们第一的数据段内容当成数据来访问。
  • 对于代码段,将它的段地址放在CS中,将段中的第一条执行的指令的偏移地址放在IP中,这样CPU就会执行代码段中的指令
  • 对于栈段,将它的段地址放在SS中,将栈顶单元的偏移地址放在SP中,这样CPU在需要进行栈操作时,比如push,pop指令时,就将栈段当成栈空间来用了。


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-11-23 21:53:42 | 显示全部楼层
不知道14行的80896CPU是什么东西,哎~可能是我孤陋寡闻... ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-11-23 21:56:00 | 显示全部楼层
记的不错,顶起
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-11-23 22:30:44 | 显示全部楼层
很好~要坚持到底哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-11-24 08:29:34 | 显示全部楼层
本帖最后由 烧点饭 于 2012-11-24 08:32 编辑

嘿嘿,打错了!一时疏忽!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 08:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表