美文网首页程序员
汇编学习笔记(8086)

汇编学习笔记(8086)

作者: sqatm | 来源:发表于2018-04-15 01:36 被阅读31次

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

特别感谢 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指令 -- 练习

image

答案:
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

相关文章

  • 汇编学习笔记(8086)

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

  • 汇编入门(长文多图,流量慎入!!!)

    8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...

  • 8086汇编笔记

    汇编指令:机器码的助记符,有对应的机器码伪指令:没有对应的机器码,由编译器执行,计算机并不执行其它符号:+-*/等...

  • 汇编分析&编译器优化

    汇编的种类 8086汇编(8086处理器是16bit的CPU) Win32汇编 Win64汇编 ARM汇编(嵌入式...

  • 逆向 - arm64汇编 - 第一天

    1. 汇编语言种类 8086汇编(8086处理器是16bit的CPU)Win32汇编Win64汇编ARM汇编(嵌入...

  • 8086 指令系统寻址方式

    整理汇编语言学习笔记,回顾一下8086 指令系统的寻址方式。 寻址与指令 寻址方式(Addressing Mode...

  • 1.汇编初识

    汇编语言常见种类: 8086汇编 (8086处理器是16bit的CPU) Win32汇编 Win64汇编 AT&T...

  • 汇编学习笔记 - 栈平衡 (8086)

    用ss来存取参数 当然由于现在强大的硬件支持,如果参数个数小于8个很少能看见用ss来存取参数,xcode都是直接用...

  • 汇编学习笔记-函数总结(8086)

    汇编函数结构 函数外传递函数参数(push ss 或者 直接传寄存器) 保护bp:push bp 用bp记录原先s...

  • 汇编语言 学习笔记(一)

    汇编语言学习笔记 一、概论 8086,8088 构架 1. 寄存器 8个通用寄存器 AX [AH, AL] - 累...

网友评论

    本文标题:汇编学习笔记(8086)

    本文链接:https://www.haomeiwen.com/subject/knerkftx.html