汇编语言 手记1
机器语言-汇编语言-高级语言
汇编语言特点:
1 与硬件相关
2 与机器指令一一对应
3 须详细描述如何做
4 可移植性差
CPU功能结构:
总线接口部件BIU
执行部件EU
CPU寄存器结构:
数据寄存器
指针及变址寄存器
段寄存器
控制寄存器
总线接口单元BIU----完成CPU与主存储器或外围设备之间的信息传送
执行单元EU----完成指令的执行
两个单元独立,并行工作,使指令的读取与执行部分重叠,提高了指令的执行速度----指令流水线结构
数据寄存器(可以字或字节形式访问,例如AX的高字节、低字节分别用AH/AL表示)
AX累加器 存放操作数和结果
BX基址寄存器 存放偏移量
CS计数寄存器 循环中计数
DX数据寄存器 双字长时与AX组合成32位数
指针和变址寄存器(存放地址的偏移量,也可以存放操作数 但只能以字为单位访问)
SP堆栈指针寄存器
BP基址指针寄存器
SI源变址寄存器
DI目的变址寄存器
段寄存器(存放相应段的段基址(段首址的高16位))
CS 代码段寄存器
DS 数据段寄存器
SS 栈段寄存器
ES 附加段寄存器
控制寄存器
IP 指令指针寄存器:即程序计数器,向下一条指令在代码段中的偏移量
PSW程序状态寄存器:记录系统运行中的各种状态和信息。由各种标志位构成,反映运算后的结果特征,将影响某种指令的执行。
20条地址线,最大为1MB
以字节为单位变址,即一个字节数据占用一个存储单元
以字为单位存储数据时,占相邻两个单元,高8位存放在高地址字节,低8位存放在低地址字节
字单元的地址用它的低地址来表示
访主存指令中应指出是字节访问还是字访问
字单元的地址一般为偶数
段概念的引入
16位寄存器如何表示20位的地址?
采用存储器地址分段的方法
段是最大长度为64kb的内存储器块
段的起始地址低4位必须为0
用户可以用同时使用4个段,段间可以邻接,重叠或不相邻
代码段存放当前程序的指令代码
数据段存放程序涉及的源数据或结果
堆栈段是以“先入后出”为原则的数据区
附加段是辅助数据区,存放串或其他数据
- 学会代码执行函数,让老哥带你勇闯天涯!
- ASP.NET Core知多少(6):VS Code联调Angular + .NetCore
- 线程安全知多少
- Parallel线程安全问题
- 厚土Go学习笔记 | 25. 函数值 函数是函数也是值
- GoStub框架使用指南
- 厚土Go学习笔记 | 24. map字典测试用例(文字出现次数统计)
- .NET Core+MySql+Nginx 容器化部署
- Trie树分析
- 厚土Go学习笔记 | 23. map字典的使用
- JDK动态代理的底层实现原理
- 冷场了吗?我带着phpcms9.6.2 注入来救场了
- 厚土Go学习笔记 | 22. 实现Pic
- ie8和chrome获取上传图片的宽度和高度等尺寸
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- IRFuzz:一款基于YARA规则的文档文件扫描工具
- 内网渗透测试研究:从NTDS.dit获取域散列值
- 腾讯云大禹高防IP之客户端获取真实IP
- 终极解密输入网址按回车到底发生了什么
- Kafka核心原理的秘密,藏在这 17 张图中
- 国庆肝了8天整整2W字的数据库知识点
- MySQL事务与MVCC如何实现的隔离级别
- 1.5w字,30图带你彻底掌握 AQS!
- 原创 | codeforces 1419D2,有趣的思维题
- 如何实现四元数的运算
- 最牛一篇布隆过滤器详解
- 编写一个IDEA插件之:开发环境准备那些坑
- 编写一个IDEA插件之:使用PSI分析Java代码
- 编写一个IDEA插件之:自动生成Java代码
- 编写一个IDEA插件之:事件监听