小甲鱼汇编语言学习笔记——day01
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的更多相关文章
- 小甲鱼汇编语言学习笔记——day03
手动编译并执行第一个汇编程序过程: 1.用notepad++写一个简单的汇编程序(文件命名为:1.asm): assume cs:abc abc segment mov ax, 2 add ax, a ...
- 小甲鱼汇编语言学习笔记——day02
1.8086CPU不支持将数据直接送入段寄存器,需要按照下面方式:数据——>通用寄存器——>段寄存器. 2.mov指令的几种形式: mov 寄存器,数据 mov 寄存器,寄存器 mov 寄 ...
- 小甲鱼Python学习笔记
一 isdigit()True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字False: 汉字数字Error: 无 isdecimal()True: Unicode数字, ...
- Linux下汇编语言学习笔记0 --- 前期准备工作
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- Linux下汇编语言学习笔记10 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- Linux下汇编语言学习笔记11 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- Linux下汇编语言学习笔记6 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- Linux下汇编语言学习笔记7 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- Linux下汇编语言学习笔记5 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
随机推荐
- 浏览器性能监控performance使用
浏览器中有一个performance的性能监控,平时我也没有用到,接手了一个大数据的项目,发现页面打开的比较慢,使用浏览器的performance分析可以看到各个步骤花费的时间. 关于项目的性能分析如 ...
- IDEA连接Oracle数据库
连接Oracle的前提是导入了相关的jar或者依赖 下面是连接数据库的操作 如果出现了下面的画面,就说明连接成功
- 简要总结selenium四个工具组
selenium 是基于WEB的自动化测试工具. 由以下几个工具组组成 1.selenium IDE: 一个火狐插件 点击这个插件就进入录制界面,能够记录用户的操作,并且将其导出为可重复使用的测试脚本 ...
- 构建memcached服务
Q: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的增.删.改.查操作:安装memcached软件,并启动服务使用telnet测试memcached服务对memc ...
- 常用方法 读取 Excel的单位格 为 日期格式 的数据
原文:地址忘了 百度应该有 Excel的单元格为日期格式,数值型日期,可用下面这个方法得到正常的数据 /// <summary> /// 数字格式的时间 转换为 字符串格式的时间 /// ...
- nginx 反向代理之 proxy_buffering
proxy_buffering主要是实现被代理服务器的数据和客户端的请求异步. 为了方便理解,我们定义三个角色,A为客户端,B为代理服务器,C为被代理服务器. 当proxy_buffering开启,A ...
- 第08组 Alpha事后诸葛亮
组长博客 点这里! 总结思考 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 弥补Powerpoint中模板转换存在的缺陷,完善PPT模板一键转换的功能 ...
- Java——获取网页内容并在本地生成HTML文件
使用java.net包下的URL类,可以将一个网页(链接)封装成一个URL对象. URL对象有一个openStream()方法,使用该方法可以获取该网页的输入流,我们可以通过读取输入流的方式获得网页的 ...
- APP用户隐私协议
告知用户 重视每个用户的的隐私,郑重承诺如下: 一.我们所收集的信息以及如何使用: 我们可能通过您的IP地址,地理位置信息,收集一些非个人隐私的统计资料,使我们能够进一步改善APP的服务.例如,当您浏 ...
- 【Beta】Scrum meeting 4
目录 写在前面 进度情况 任务进度表 Beta-1阶段燃尽图 遇到的困难 照片 commit记录截图 小程序前端仓库 技术博客 写在前面 例会时间:5.8 22:30-23:00 例会地点:微信群语音 ...