1、计算机CPU由如下三部分组成(如下图):运算器、控制器、寄存器

2、寄存器:简单说,就是用来存储数据的器件,类似内存,不过这个是CPU专用,跟内存不一样。

8086CPU里,寄存器总共有14个,且都是16位。

即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。

这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。

通用寄存器:AX,BX,CX,DX,SP,BP,SI,DI

控制寄存器:IP,FLAG

段寄存器:

CS (Code Segment):代码段寄存器

DS (Data Segment):数据段寄存器

SS (Stack Segment):堆栈段寄存器

ES (Extra Segment):附加段寄存器

16位寄存器图(以AX为例)如下:AH表示高8位寄存器,AL表示低8位寄存器(这样做是为了兼容以前的老的8位程序)

 

3、由于8086CPU地址总线为20位,即寻址能力为220 也就是 1MB ,但它的寄存器为16位,也就是一次可以处理的数据只能是16位,如此造成两者不匹配,无法发挥最大效率,所以最后采取了一个很聪明的做法:将两个16位的地址合成了一个20位的地址。

先将16位段地址左移一位,即*16,再与16位偏移地址相加,最后得到20位物理地址。

16位段地址*16 + 偏移地址 = 物理地址

1000H*16 + 0003H = 10000H + 0003H = 10003H


4、debug调试指令:

r : 查看当前寄存器值

r ax:修改当前寄存器的值

d:查看内存中的内容

t :执行一条机器指令

a :写入汇编指令

u :将机器指令转化成汇编指令

ps:win7 64位调出debug模式可以参考百度:https://jingyan.baidu.com/article/86f4a73e58413137d7526970.html

小甲鱼汇编语言学习笔记——day01的更多相关文章

  1. 小甲鱼汇编语言学习笔记——day03

    手动编译并执行第一个汇编程序过程: 1.用notepad++写一个简单的汇编程序(文件命名为:1.asm): assume cs:abc abc segment mov ax, 2 add ax, a ...

  2. 小甲鱼汇编语言学习笔记——day02

    1.8086CPU不支持将数据直接送入段寄存器,需要按照下面方式:数据——>通用寄存器——>段寄存器. 2.mov指令的几种形式: mov 寄存器,数据 mov 寄存器,寄存器 mov 寄 ...

  3. 小甲鱼Python学习笔记

    一 isdigit()True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字False: 汉字数字Error: 无 isdecimal()True: Unicode数字, ...

  4. Linux下汇编语言学习笔记0 --- 前期准备工作

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  5. Linux下汇编语言学习笔记10 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  6. Linux下汇编语言学习笔记11 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  7. Linux下汇编语言学习笔记6 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  8. Linux下汇编语言学习笔记7 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  9. Linux下汇编语言学习笔记5 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

随机推荐

  1. js 复选框回显

    <div class="control-group"> <label class="control-label">客户状态:</l ...

  2. what-is-the-difference-between-type-and-class

    Inspired by Wikipedia... In type theory terms; A type is an abstract interface. Types generally repr ...

  3. 学习:STL_deque容器

    deque容器: 功能:双端数组,可以对头端进行插入删除操作 deque与vector区别: 1.vector对于头部的插入删除效率低,数据量越大,效率越低 2.deque相对而言,对头部的插入删除速 ...

  4. 51nod1803 森林直径

    [传送门] 考虑计算直径的 dp 方法. $d[u]$ 表示以 $u$ 为根的子树能 $u$ 能走到的最远距离 $dp[u]$ 表示以 $u$ 为根的子树的直径那么每次dfs一个子节点后$dp[u] ...

  5. LeetCode 1110. Delete Nodes And Return Forest

    原题链接在这里:https://leetcode.com/problems/delete-nodes-and-return-forest/ 题目: Given the root of a binary ...

  6. H5制作显示轮播图的方法Swiper

    1.需要引入Swiper插件 <!-- swiper插件 --> <link rel="stylesheet" href="https://unpkg. ...

  7. 常用方法 读取 Excel的单位格 为 日期格式 的数据

    原文:地址忘了 百度应该有 Excel的单元格为日期格式,数值型日期,可用下面这个方法得到正常的数据 /// <summary> /// 数字格式的时间 转换为 字符串格式的时间 /// ...

  8. JS回调函数怎么写的?

    相信每个做前端的同学都用过太多太多的回调函数, 接下来就看看回调函数是怎么来的. 这玩意儿也没那么神秘,直接看代码: 声明函数的时候,把回调函数用作参数,并且在函数内调用它 function getD ...

  9. nginx return配置说明

    该指令一般用于对请求的客户端直接返回响应状态码.在该作用域内return后面的所有nginx配置都是无效的. 可以使用在server.location以及if配置中. 除了支持跟状态码,还可以跟字符串 ...

  10. pandas批量读取带有日期的文件夹简单操作

    工作中碰到了这样一个数据处理的问题,想让你把某个文件夹下的子文件夹中的excel表级联成为1张表,用excel来做会很浪费时间并且很劳累,这时候我们就可以用pandas来加大工作效率,只需要半个小时就 ...