汇编语言复习笔记:8086CPU、内存、总线、寄存器、指令等

需积分: 10 0 下载量 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的基本知识、总线和内存地址空间、汇编语言编程、调试和仿真、硬盘和磁碟、字符模式和串拷贝、数字表示和标志位、循环和跳转、数据定义和重复、栈和寻址方式等方面。