汇编学习笔记(8086)

这个只是一个复习笔记,只是单纯的脑子笨,把之前的学过的知识捋一遍而已,并不是教什么。 如果之前没学过汇编的童鞋还是别看了,学过的看一大体回顾一下。

特别感谢 hank老师 的帮助,么么哒~

一.总线

地址总线

1.它的宽度决定了CPU的寻址能力 2.8086的地址总线宽度是20,所以寻址能力是1M(2^20) 3.一个宽度单位能提供2种电压,所以20个单位就能提供2^20中电压组合

数据总线

1.它的宽度决定了CPU的单词数据传送量,也就是数据传送速度 2.8086的数据总线宽度是16,所以单词最大传递2个字节数据(2*16)

练习题
  • 一个CPU 的寻址能力为8KB,那么它的地址总线的宽度为____ 2^X = 8KB = 8 * (2^10) = 2^3 * 2^10 = 2 ^ 13 答案:13

  • 8080,8088,80286,80386 的地址总线宽度分别为16根,20根,24根,32根.那么他们的寻址能力分别为多少____KB, ____MB,____MB,____GB? 8080: 2 ^ 16 = 2 ^ 6 * 2 ^ 10 = 2 ^ 6KB = 64KB 答案:64KB、1MB、16MB、4GB

  • 8080,8088,8086,80286,80386 的数据总线宽度分别为8根,8根,16根,16根,32根.那么它们一次可以传输的数据为:____B,____B,____B,____B,____B 8080: 2 * 8 = 2B 答案:1B、1B、2B、2B、4B

  • 从内存中读取1024字节的数据,8086至少要读____次,80386至少要读取____次. 8086: 读数据是依靠数据总线,8086是的数据总线宽度是16。一次能读2字节,所以读取2^10字节 需要 2 ^ 9次,即512次。 答案:512次、256次

二.寄存器

字和字节

字节:byte,1个字节由8bit组成,可以存储在8位寄存器中 字:word,1个字由2个字节组成,这2个字节分别称为字的高字节和低字节

8086的寻址方式

  • 物理地址:CPU访问内存单元时,要给出内存单元的地址,所有的内存单元都有唯一的地址
  • 物理地址 = 段地址X16 + 偏移地址

代码段 - CS和IP

mov指令不能用于设置CS、IP的值

指令的执行过程

(正在研究markdown插入视频,有会的麻烦联系我 /(ㄒoㄒ)/~~) CPU指令执行过程 视频

注意:IP的值会先自加,然后执行命令

三.jmp指令

jmp指令 -- 练习

答案: 0 CS 2000H IP 0000H 1 AX 6622H CS 2000H IP 0003H 2 AX 6622H CS 1000H IP 0003H 3 AX 0000H CS 1000H IP 0006H 4 AX 0000H BX 0000H CS 1000H IP 0008H 5 AX 0000H BX 0000H CS 1000H IP 0000H 6 AX 0123H BX 0000H CS 1000H IP 0003H 7 死循环

  1. mov ax,bx IP修改1次
  2. sub ax,ax IP修改1次, ax = ax - ax = 0
  3. jmp ax IP修改2次 IP = 0

#四.数据段 - DS和[address]

  • 8086不支持将数据直接送入段寄存器中,mov ds,1000H是错误的
  • 正确的输入方式如下

mov bx,1000H ;将段地址给bx mov ds,bx ;把bx里面的地址值给数据段段寄存器(dx) mov al,[0] ;将10000H(1000:0)中的内存数据赋值到al寄存器中(将DS:address中的内存数据赋值到al寄存器中) mov [0],al ;将al中的值给 1000:0

#五.栈段 - SS 和 SP

  • SS存放栈段的段地址,用SP存放栈顶的偏移地址
  • push -sp
  • pop +sp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值