logo资料库

汇编语言笔记(王爽).docx

第1页 / 共126页
第2页 / 共126页
第3页 / 共126页
第4页 / 共126页
第5页 / 共126页
第6页 / 共126页
第7页 / 共126页
第8页 / 共126页
资料共126页,剩余部分请下载后查看
第一章 基础知识
1.1机器语言
1.2汇编语言的产生
1.3 汇编指令的组成
1.4存储器
1.5指令和数据
1.6存储单元
1.7 cpu对存储器的读写
1.8地址总线
1.9数据总线
1.10控制总线
1.11内存地址空间
1.12主板
1.14接口卡
1.14各类存储器芯片
1.15内存地址空间
第二章 寄存器
2.1通用寄存器
2.2字在寄存器中的存储
2.3几条汇编指令
2.4物理地址
2.5 16位结构的cpu
2.6 8086cpu给出物理地址的方法
2.7“段地址*16+偏移地址=物理地址”的本质含义
2.8d段的概念
2.9 段寄存器
2.10 CS和IP
2.11修改CS、IP指令
2.12代码段
第三章 寄存器(内存访问)
3.1内存中字的存储
3.2DS 和 [address]
3.3字的传送
3.4mov、add、sub
1.mov指令形式(2个操作对象)
2.add、sub和mov指令类似。
3.5数据段
3.6栈
3.7cpu提供的栈机制
3.8栈顶超界的问题
3.9push、pop指令
3.10栈段
第四章 第一个程序
4.1汇编程序从写出到执行的过程
4.2 源程序
4.3编辑源程序
4.4编译
4.5连接
4.6以简化的方式进行编译和连接
4.7 1.exe的执行
4.8谁将可执行文件中的程序装载进入内存并使用它允许
4.9程序执行过程跟踪
第五章[bx] 和 loop指令
1.完整的描述数据单元需要的信息:
2.约定()表示一个寄存器或者一个内存单元的内容。()中的元素可以有3种类型:
3.约定符号idata表示常量
5.1[BX]
5.2loop指令
5.3在debug中跟踪用loop指令实现的循环方式
5.4debug和汇编编译器masm对指令的不同处理
5.5loop 和 [bx] 的联合应用
5.6段前缀
5.7一段安全的空间
5.8段前缀的使用
第六章 包含多个段的程序
6.1在代码段中使用数据
6.2在代码段中使用栈
6.3将数据、代码、栈放入不同的段
第七章 更灵活的定位内存地址的方法
7.1and 和 or
1.and指令:逻辑与指令,按位进行与运算。
2.or指令:逻辑或指令,按位进行或运算。
7.2关于ASCII码
7.3以字符形式给出的数据
7.4大小写转换的问题
7.5[bx+idata]
7.6用[bx+idata]的方式进行数组的处理
7.7SI 和DI
7.8[bx + si] 和 [bx + di]
7.9[bx+si+idata]和[bx+di+idata]
7.10不同的寻址方式的灵活应用
1.定位内存方法
2.将datasg段中每个单词改为大写字母
第八章 数据处理的两个基本问题
8.1 bx、si、di和bp
8.3机器指令处理的数据在什么地方
8.3汇编语言中数据位置的表达
8.4寻址方式
8.5指令要处理的数据有多长
8.6寻址方式的综合应用
8.7div指令
8.8伪指令dd
8.9操作符dup
第九章 转移指令的原理
9.1操作符offset
9.2jmp指令
9.3依据位移进行转移的jmp指令
2、转移的目的地址在指令中的jmp指令
3、转移地址在寄存器或内存中的jmp指令
4、jcxz指令和loop指令
9.8loop指令
第十章call和ret指令
10.1ret 和 retf
10.2call 指令
10.3依据位移进行转移的call指令
10.4 转移的目的地址在指令中的call指令
10.5转移地址在寄存器中的call指令
10.6转移地址在内存中的call指令
10.7call 和 ret 的配合使用
10.8mul 指令
10.9模块化程序设计
10.10参数和结果传递的问题
10.11批量数据的传递
10.12寄存器冲突的问题
第十一章 标志寄存器
1、标志寄存器
2、adc指令和sbb指令
3、cmp指令
4、检测比较结果的条件转移指令
5、DF标志和串传送指令
6、pushf和popf
十一、内中断
1、内中断的产生
2、中断处理程序、中断向量表、中断过程
3、iret指令
4、除法错误中断的处理
5、单步中断
6、int指令
7、BIOS和DOS所提供的中断例程
十二、端口
1、端口的读写
2、CMOS RAM芯片
3、shl和shr指令
十三、外中断
1、外中断
1、可屏蔽中断
2、不可屏蔽中断
2、PC机键盘的处理过程
十四、直接定址表
十五、 指令系统总结
目录 第一章 基础知识................................................................................................................................... 4 1.1 机器语言....................................................................................................................................4 1.2 汇编语言的产生........................................................................................................................4 1.3 汇编指令的组成.......................................................................................................................5 1.4 存储器........................................................................................................................................5 1.5 指令和数据................................................................................................................................5 1.6 存储单元....................................................................................................................................5 1.7 cpu 对存储器的读写.................................................................................................................6 1.8 地址总线....................................................................................................................................7 1.9 数据总线....................................................................................................................................8 1.10 控制总线................................................................................................................................10 1.11 内存地址空间........................................................................................................................11 1.12 主板........................................................................................................................................11 1.14 接口卡....................................................................................................................................11 1.14 各类存储器芯片....................................................................................................................12 1.15 内存地址空间........................................................................................................................14 第二章 寄存器..................................................................................................................................... 16 2.1 通用寄存器..............................................................................................................................17 2.2 字在寄存器中的存储..............................................................................................................18 2.3 几条汇编指令..........................................................................................................................19 2.4 物理地址..................................................................................................................................19 2.5 16 位结构的 cpu......................................................................................................................20 2.6 8086cpu 给出物理地址的方法...............................................................................................20 2.7“段地址*16+偏移地址=物理地址”的本质含义................................................................21 2.8d 段的概念................................................................................................................................22 2.9 段寄存器.................................................................................................................................23 2.10 CS 和 IP................................................................................................................................. 23 2.11 修改 CS、IP 指令................................................................................................................. 24 2.12 代码段....................................................................................................................................25 第三章 寄存器(内存访问)............................................................................................................... 25 3.1 内存中字的存储......................................................................................................................25 3.2DS 和 [address] .......................................................................................................................26 3.3 字的传送..................................................................................................................................27 3.4mov、add、sub........................................................................................................................ 27 1. mov 指令形式(2 个操作对象)...................................................................................27 2.add、sub 和 mov 指令类似。......................................................................................... 28 3.5 数据段......................................................................................................................................28 3.6 栈..............................................................................................................................................28 3.7cpu 提供的栈机制....................................................................................................................29 3.8 栈顶超界的问题......................................................................................................................31 3.9push、pop 指令........................................................................................................................33 3.10 栈段........................................................................................................................................34 第四章 第一个程序............................................................................................................................... 34
4.1 汇编程序从写出到执行的过程..............................................................................................34 4.2 源程序.....................................................................................................................................35 4.3 编辑源程序..............................................................................................................................37 4.4 编译..........................................................................................................................................37 4.5 连接..........................................................................................................................................37 4.6 以简化的方式进行编译和连接..............................................................................................38 4.7 1.exe 的执行............................................................................................................................38 4.8 谁将可执行文件中的程序装载进入内存并使用它允许 ......................................................38 4.9 程序执行过程跟踪..................................................................................................................38 第五章 [bx] 和 loop 指令.................................................................................................................... 40 1. 完整的描述数据单元需要的信息:.......................................................................................40 2. 约定()表示一个寄存器或者一个内存单元的内容。()中的元素可以有 3 种类型:40 3. 约定符号 idata 表示常量.........................................................................................................41 5.1[BX].......................................................................................................................................... 41 5.2loop 指令.................................................................................................................................. 41 5.3 在 debug 中跟踪用 loop 指令实现的循环方式.....................................................................42 5.4debug 和汇编编译器 masm 对指令的不同处理.................................................................... 42 5.5loop 和 [bx] 的联合应用.......................................................................................................42 5.6 段前缀......................................................................................................................................44 5.7 一段安全的空间......................................................................................................................44 5.8 段前缀的使用..........................................................................................................................44 第六章 包含多个段的程序................................................................................................................... 45 6.1 在代码段中使用数据..............................................................................................................45 6.2 在代码段中使用栈..................................................................................................................46 6.3 将数据、代码、栈放入不同的段..........................................................................................48 第七章 更灵活的定位内存地址的方法............................................................................................... 49 7.1and 和 or................................................................................................................................. 49 1.and 指令:逻辑与指令,按位进行与运算。 ................................................................ 49 2.or 指令:逻辑或指令,按位进行或运算。 ...................................................................49 7.2 关于 ASCII 码......................................................................................................................... 49 7.3 以字符形式给出的数据..........................................................................................................50 7.4 大小写转换的问题..................................................................................................................51 7.5[bx+idata]..................................................................................................................................52 7.6 用[bx+idata]的方式进行数组的处理.....................................................................................52 7.7SI 和 DI....................................................................................................................................53 7.8[bx + si] 和 [bx + di]...............................................................................................................54 7.9[bx+si+idata]和[bx+di+idata]...................................................................................................54 7.10 不同的寻址方式的灵活应用................................................................................................55 1.定位内存方法...................................................................................................................55 2.将 datasg 段中每个单词改为大写字母...........................................................................55 第八章 数据处理的两个基本问题....................................................................................................... 57 8.1 bx、si、di 和 bp......................................................................................................................57 8.3 机器指令处理的数据在什么地方..........................................................................................57 8.3 汇编语言中数据位置的表达..................................................................................................58
i = 0;.........................................................................................................................................................62 八、转移指令的原理............................................................................................................................. 64 1、操作符 offset........................................................................................................................... 65 2、jmp 指令.................................................................................................................................. 65 1、依据位移进行转移的 jmp 指令....................................................................................66 2、转移的目的地址在指令中的 jmp 指令........................................................................67 3、转移地址在寄存器或内存中的 jmp 指令....................................................................67 4、jcxz 指令和 loop 指令................................................................................................... 68 九、call 和 ret 指令................................................................................................................................ 69 1、ret 和 retf................................................................................................................................69 2、call 指令..................................................................................................................................71 (1)将当前的 IP 或 CS 和 IP 压入栈中;..................................................................71 (2)转移(jmp)。..........................................................................................................71 3、call 和 ret 的配合使用..........................................................................................................72 十、标志寄存器..................................................................................................................................... 76 1、标志寄存器..............................................................................................................................76 2、adc 指令和 sbb 指令............................................................................................................... 81 3、cmp 指令..................................................................................................................................83 4、检测比较结果的条件转移指令..............................................................................................85 5、DF 标志和串传送指令........................................................................................................... 87 6、pushf 和 popf........................................................................................................................... 88 十一、内中断......................................................................................................................................... 88 1、内中断的产生..........................................................................................................................88 2、中断处理程序、中断向量表、中断过程..............................................................................90 3、iret 指令................................................................................................................................... 91 4、除法错误中断的处理..............................................................................................................92 5、单步中断..................................................................................................................................95 6、int 指令.................................................................................................................................... 96 7、BIOS 和 DOS 所提供的中断例程....................................................................................... 100 十二、端口........................................................................................................................................... 104 1、端口的读写............................................................................................................................105 2、CMOS RAM 芯片 ................................................................................................................. 105 3、shl 和 shr 指令.......................................................................................................................107 十三、外中断....................................................................................................................................... 108 1、外中断....................................................................................................................................108 1、可屏蔽中断..................................................................................................................109 2、不可屏蔽中断..............................................................................................................110 2、PC 机键盘的处理过程 ..........................................................................................................110 十四、直接定址表............................................................................................................................... 118 十五、 指令系统总结......................................................................................................................... 125
第一章 基础知识 1.1 机器语言 1.机器语言:机器指令的集合。 2.机器指令:CPU 能直接识别并执行的二进制编码 举例: (1)把寄存器 BX 的内容存放到 AX 中,机器指令:1000100111011000 3.机器指令特点: (1)机器码晦涩难懂,难于辨别和记忆 (2)不易查错 1.2 汇编语言的产生 1. 汇编指令:汇编指令是机器指令的助记符,是机器指令的一种格式,同 机器指令一一对应。 举例: (2)把寄存器 BX 的内容存放到 AX 中,汇编指令:MOV AX,BX 2. 寄存器:cpu 中可以存储数据的器件。 3. 汇编指令到机器指令的过程 图 1-1 用汇编语言编写程序的工作过程 编译器:够将汇编指令转换成机器指令的翻译程序。
1.3 汇编指令的组成 1.汇编语言由 3 类指令组成: (1)汇编指令:机器码的助记符,有对应的机器指令,是汇编语言的核心, 决定了汇编语言的特性。 (2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行 (3)其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。 1.4 存储器 1. 存储器:内存,存放指令和数据的地方,磁盘中的数据必须读到内存中 才可以被 cpu 利用。Cpu——大脑,存储器——记忆。 1.5 指令和数据 1.指令:指令通常由操作码和地址码(操作数)两部分组成。 2.指令集:指令的集合,每种 CPU 都有自己的汇编指令集 3.在内存或磁盘上,指令和数据没有任何区别,都是二进制信息,cpu 需要 根据实际情况为为同样的信息赋予不同的意义。 举例: (1)内存中的一串二进制:1000100111011000,计算机可以把他作为数据 来处理,也可以当做指令来处理。 1000100111011000——>89D8H(数据) 1000100111011000——>mov ax,bx 指令) 1.6 存储单元 1. 存储单元:存储器中的组成部分,按顺序从 0 进行编号,1 个存储单元 可以存储 1 个 Byte 的数据。
2. 单位换算 1KB=1024B 1B=8b B:Byte(字节) b:bit(二进制位) 1MB=1024KB 1GB=1024MB 1TB=2014GB 1.7 cpu 对存储器的读写 1.总线:连接各个部件的信息传输线,是各个部件共享的传输介质,物理上 讲就是一根根导线的集合,逻辑上根据传送信息的不同分为地址总线、控制总线、 数据总线。 2.总线分类 (1)根据位置分类:片内总线、系统总线 片内总线:芯片内部总线 系统总线:计算机各部件之间的信息传输线 (2)根据传送信息的不同分类:地址总线、控制总线、数据总线。 地址总线:CPU 通过地址总线来指定存储单元。 数据总线:CPU 与内存或其他器件之间的数据传送是通过数据总线来进行的 控制总线:CPU 对外部器件的控制是通过控制总线来进行的。 3.cpu 读写操作,必须与存储器芯片进行 3 类信息交互: (1)地址信息:存储单元地址 (2)控制信息:器件的选择,读或写的命令 (3)数据信息:读或写的数据 4.Cpu 从 3 号单元读取数据的过程如下:
图 1-2 cpu 从内存读取数据的过程 (1)cpu 通过地址先将地址信息 3 发出; (2)Cpu 通过控制总线发出内存度命令,选中存储器芯片,并通知他,将 要从中读取数据; (3)存储器将 3 号单元的数据 8 通过数据线送入 cpu。 5.Cpu 向存储单元写数据的过程与上述一致。 6.命令计算机进行数据读写——机器码(输入驱动计算机工作的电平信息) 举例: (1)从 3 号单元读数据 机器码:101000010000001100000000 汇编指令:mov AX,[3] 含义:从 3 号单元读取数据送入寄存器 AX CPU 接受这条机器码后完成上述的读写工作。 1.8 地址总线 1.cpu 是通过地址总线来指定存储单元的,地址总线上能传送多少个不同的 信息,cpu 就可以对多少个存储单元进行寻址。
(1)1 根导线可以传送的稳定状态只有两种,高电平或是低电平。用二进 制表示就是 1 或 0. (2)图示有 10 根地址线即一次可以传输 10 位,可以传送 210个不同的信息, 范围为 0-1023。当一个具有 10 根地址总线的 cpu 向内存发出地址信息是 11 时 10 根地址线由高到低位分别传送的二进制是 0000001011。 (3)一个 cpu 有 N 根地址线,则可以说这个 CPU 的地址总线的宽度为 N, cpu 最多寻找 2n 个内存单元。 1.9 数据总线 1. cpu 与内存或者其他器件之间传送数据是通过数据总线来进行的,数据
分享到:
收藏