汇编语言复习笔记:8086CPU、内存、总线、寄存器、指令等
需积分: 10 31 浏览量
更新于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-06-15 上传
2023-06-10 上传
2023-02-24 上传
2023-05-30 上传
2023-05-31 上传
2023-09-04 上传
2023-05-31 上传
Alptou
- 粉丝: 34
- 资源: 1
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍