汇编语言复习笔记:8086CPU、内存、总线、寄存器、指令等
需积分: 10 97 浏览量
更新于2024-08-05
收藏 6.83MB DOCX 举报
汇编语言复习笔记
在这篇笔记中,我们将详细讨论汇编语言的各种概念和技术,从8086CPU的基本知识到汇编语言的编程技巧。
一、8086CPU的基本知识
(1)8086CPU是16位的,具有16位寄存器和16位地址总线。寄存器包括通用寄存器、段寄存器、指令寄存器、标志寄存器等。
(2)8086CPU的内存分段机制是通过将内存分成多个段来管理内存的。每个段的大小是64KB,总共可以有65536个段。
二、总线和内存地址空间
(3)总线可以分为地址总线、数据总线和控制总线三个部分。地址总线用于传输地址信号,数据总线用于传输数据信号,控制总线用于传输控制信号。
(4)内存地址空间是指计算机的内存可以寻址的范围。8086CPU的内存地址空间是1MB(2^20),可以寻址的范围是从0到FFFFF。
三、汇编语言编程
(6)8086CPU执行指令的过程是从内存中取出指令, decode 指令,执行指令,最后将结果存储到寄存器或内存中。
(7)汇编语言是编译性语言,由指令、操作符、操作数和注释四部分构成。
四、调试和仿真
(8)bochsdbg是调试工具,常用的命令有break、run、next、step等。
五、硬盘和磁碟
(9)硬盘的CHS(Cylinder-Head-Sector)模式是指硬盘的物理结构,每个磁碟上有多个磁头,每个磁头上有多个扇区,扇区中存储着数据。
六、字符模式和串拷贝
(10)80*25彩色字符模式是指在屏幕上显示80个字符,25行的模式。
(11)内存的串拷贝(repmovsb/movsw)是通过将源地址和目标地址的串拷贝来实现的。
七、数字表示和标志位
(12)无符号数和有符号数是不同的表示方法,无符号数的最高位表示数值,有符号数的最高位表示符号位。
(13)mul和div的实现过程是通过将操作数分解为高位和低位,然后进行相应的操作来实现的。
八、循环和跳转
(14)标志位zf、of、cf、pf、sf、df、tf、if、af的作用是判断前5个的值。
(15)loop循环是通过将寄存器的值减1来实现的。
(16)jcc语句是通过判断标志位来实现跳转的。
九、数据定义和重复
(18)db、dw、dd等是数据定义指令,用于定义字节、字和双字的数据。
(19)and、or、xor、not是逻辑运算指令,用于实现逻辑运算。
十、栈和寻址方式
(20)栈是通过push和pop指令来实现的,空栈和满栈的设置是通过设置SP寄存器的值来实现的。
(21)8086寻址方式有多种,包括固定寻址、立即数寻址、寄存器寻址、内存寻址、段超越、寄存器间接寻址、基地址变址寻址等。
(22)JMP语句可以分为无条件跳转、条件跳转和子程序调用跳转等多种形式。
这篇笔记涵盖了汇编语言的基本概念和技术,包括8086CPU的基本知识、总线和内存地址空间、汇编语言编程、调试和仿真、硬盘和磁碟、字符模式和串拷贝、数字表示和标志位、循环和跳转、数据定义和重复、栈和寻址方式等方面。
2022-06-23 上传
2022-06-18 上传
2022-07-11 上传
Alptou
- 粉丝: 34
- 资源: 1
最新资源
- 掌握压缩文件管理:2工作.zip文件使用指南
- 易语言动态版置入代码技术解析
- C语言编程实现电脑系统测试工具开发
- Wireshark 64位:全面网络协议分析器,支持Unix和Windows
- QtSingleApplication: 确保单一实例运行的高效库
- 深入了解Go语言的解析器组合器PARC
- Apycula包安装与使用指南
- AkerAutoSetup安装包使用指南
- Arduino Due实现VR耳机的设计与编程
- DependencySwizzler: Xamarin iOS 库实现故事板 UIViewControllers 依赖注入
- Apycula包发布说明与下载指南
- 创建可拖动交互式图表界面的ampersand-touch-charts
- CMake项目入门:创建简单的C++项目
- AksharaJaana-*.*.*.*安装包说明与下载
- Arduino天气时钟项目:源代码及DHT22库文件解析
- MediaPlayer_server:控制媒体播放器的高级服务器