汇编学习(二)——8086CPU
一、8086CPU
1、微处理器
(1)微控制机:也称单片机
(2)DSP芯片:数字信号处理芯片
(3)嵌入式微处理器
(4)通用微处理器:PC站、工作站、服务器使用的处理器
2、内部结构:
(1)总线接口单元(BIU):
A、负责数据的传输和指令的读取
B、执行单元对指令机器码进行译码
C、对芯片中各部件进行协调控制
(2)执行单元(EU):执行运算
3、8086寄存器

(1)通用寄存器:
A、8个通用寄存器:AH,AL,BH,BL,CH,CL,DH,DL
B、2个变址寄存器:SI,DI
C、2个指针寄存器:BP,SP
这四个寄存器只能按16位操作,主要用来暂存数据或者地址
(2)段寄存器:
主要为主储存器的分段管理提供段地址
(3)控制寄存器:
指令指针IP实际上是一个16位的加计数器,始终指向下一条要执行的命令的地址。
4、控制寄存器中的标志寄存器
(1)控制标志位:
DF:方向标志
IF:中断标志
TF:单步标志或者陷阱标志
(2)条件标志位
PF:奇偶标志:计算结果的低8位,若1的个数为偶数个,则PF=1,否则PF=0
ZF:零标志位:计算结果为0,ZF=1,否则ZF=0
AF:辅助进位/借位标志位:计算结果D3向D4进位或者借位,则AF=1,否则AF=0。
CF:进位/借位标志位:计算结果的最高位向前进位或者借位,则CF=1,否则CF=0
SF:符号标志位:计算记过为负,SF=1,否则SF=0,实际上就是计算机过的最高位(补码)
OF:溢出标志位:计算结果超出带符号数补码数的表示范围:OF=1,否则OF=0。用于计算加减法是否出错。
(3)判断OF标志位的方法:

减法同理可得
汇编学习(二)——8086CPU的更多相关文章
- 汇编学习二-VB(常见函数分析)
VB代码如下所示 push ebp 00401FF1 . 8BEC mov ebp,esp 00401FF3 . 83EC 0C sub esp,0xC push <jmp.&MSVBV ...
- emberjs学习二(ember-data和localstorage_adapter)
emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...
- ReactJS入门学习二
ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...
- TweenMax动画库学习(二)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
- 汇编学习笔记(11)int指令和端口
格式 int指令也是一种内中断指令,int指令的格式为int n,n是中断类型码.也就是说,使用int指令可以调用任意的中断例程,例如我们可以显示的调用0号中断例程,还记得在汇编学习笔记(10)中我们 ...
- Hbase深入学习(二) 安装hbase
Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...
- Struts2框架学习(二) Action
Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...
- Python学习二:词典基础详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...
- Quartz学习--二 Hello Quartz! 和源码分析
Quartz学习--二 Hello Quartz! 和源码分析 三. Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ...
- SpringCloud学习(二):微服务入门实战项目搭建
一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具 ...
随机推荐
- iOS 目录的使用
Table 1-1 Commonly used directories of an iOS app Directory Description AppName.app This is the ap ...
- Linux基础命令总结
1.pwd 查看当前工作目录 2.ls [目录] 列出指定目录下的所有文件,使用 ls -l 或者 ll 列出文件详细列表包括权限.大小等文件默认大小以字节B为单位,目录大小为4096B ls - ...
- Zookeeper集群服务部署
Zookeeper是一个分布式.开源的分布式应用程序协调服务,是Google的Chubby的开源实现,也是和Hadoop.Hbase相互配合的重要组件,作用就是为分布式应用程序提供一致性服务,包括配置 ...
- 使用mysqladmin ext了解MySQL运行状态【转】
摘要: mysqladmin是 MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状态.进程信息.进程杀死等.本文介绍一下如何使用 mysqladmin e ...
- JS 判断图片尺寸大小,以便页面resize时,动态调整页面元素位置
){ clearInterval(global_timename4pool); } } //由于无法判断图片显示完整的时机,只好用定时器来做,计算完成后再关掉定时器. global_timename4 ...
- jquery.validate ajax提交
页面引入jquery.validate.min.js <style> //引入错误格式 label.error { display: block; ma ...
- NodeVisitor的使用-遍历Geode节点并在它与父节点之间添加一个LOD节点
#include <osg\NodeVisitor>#include <osg\MatrixTransform>#include <osg\PagedLOD>#in ...
- windows系统查看80端口被占用的程序并结束该程序运行
一.背景 最近系统更新以后,我在Idea中适用80端口启动项目的时候发现80端口被占用了,就查了资料看怎么找到占用80端口的程序并结束其运行,下面把解决方式共享给大家. 二.解决步骤 1.首先打开控制 ...
- error C2664: 'TextOutW' : cannot convert parameter 4 from const char [5]' to LPCTSTR
转自:http://blog.sina.com.cn/s/blog_4aa4593d0100odra.html 问题的原因是字符串ANSI和Unicode编码的区别, VC6与VS2003等默认使用A ...
- Bootstrap学习(一)
Bootstrap就是对jQuery的一次再开发,所以jQuery脚本引用必须在bootstrap脚本之前. 链接:http://www.cnblogs.com/vvjiang/p/5189804.h ...
