IBM-PC汇编语言程序设计31 (2)讲义资料

上传人:youn****329 文档编号:143148682 上传时间:2020-08-26 格式:PPT 页数:48 大小:753KB
返回 下载 相关 举报
IBM-PC汇编语言程序设计31 (2)讲义资料_第1页
第1页 / 共48页
IBM-PC汇编语言程序设计31 (2)讲义资料_第2页
第2页 / 共48页
IBM-PC汇编语言程序设计31 (2)讲义资料_第3页
第3页 / 共48页
IBM-PC汇编语言程序设计31 (2)讲义资料_第4页
第4页 / 共48页
IBM-PC汇编语言程序设计31 (2)讲义资料_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《IBM-PC汇编语言程序设计31 (2)讲义资料》由会员分享,可在线阅读,更多相关《IBM-PC汇编语言程序设计31 (2)讲义资料(48页珍藏版)》请在金锄头文库上搜索。

1、第3章 80 x86的指令系统和寻址方式,1,编程工具,第三章 80 x86指令系统和寻址方式 第四章 汇编语言程序格式,第3章 80 x86的指令系统和寻址方式,2,第3章 80 x86的指令系统和寻址方式,3.1 程序语言简介 3.2 80 x86的寻址方式 3.3 程序占有的空间和时间 3.4 80 x86的指令系统,第3章 80 x86的指令系统和寻址方式,3,3.1 程序语言简介 (1) 指令、指令系统和程序 (2) 机器码和机器语言 (3) 助记符和汇编语言 (4) 高级语言 (5) 8086/8088指令格式简介,第3章 80 x86的指令系统和寻址方式,5,程序是为要解决的问题

2、编写出来的指令集合,一个CPU的指令系统是固定的, 不同类型的CPU其指令系统不同; 同一系列向上兼容。,用户为解决自己的问题所编写的程序称为源程序。,第3章 80 x86的指令系统和寻址方式,6,(2) 机器码和机器语言,应用:显示设备简单的单片机 家用电器、固化在ROM上的程序等,机器语言是机器码及其使用的一组规则。 用机器语言编写的程序称为目标程序。 机器语言特点:CPU能直接识别的唯一语言 面向机器,可直接被计算机执行 执行速度快,占用内存空间小 编程效率低、可读性差、可移值性差,用二进制数编码表示的指令,称为机器指令或机器码。,第3章 80 x86的指令系统和寻址方式,7,例 将地址

3、为2000H和2001H 的两内存单元内容相加, 结果存在地址2002H单元中,程序如下: A0 00 20 02 06 01 20 A2 02 20,数据暂存器,PSW标志 寄存器,控制电路,指令译码器,AX BX CX DX SI DI BP SP,指 令 队 列,总线 接口控制电路,运 算 器,地址总线AB,数据总线DB,控制总线CB,地 址 译 码 器,IP,地址加法器,DS ES,SS CS,1010 0000 0000 0000 0010 0000 0000 0010 0000 0110 0000 0001 0010 0000 1010 0010 0000 0010 0010 00

4、00,A0 00 20 02 06 01 20 A2 02 20,MOV AL , 2000H ADD AL , 2001H MOV 2002H, AL,第3章 80 x86的指令系统和寻址方式,8,(3) 助记符和汇编语言,用助记符等表示的指令称为汇编格式指令 例 MOV AL, 0 汇编语言是汇编格式指令、伪指令及其使用的一组规则。 用汇编语言编写的程序称汇编语言程序。,助记符是有助记忆、并能描述指令功能的符号。 通常是指令功能的英文单词的缩写。 例 数的传送指令用助记符MOV 加法用ADD,转移用JMP等,第3章 80 x86的指令系统和寻址方式,9,上例 将地址为2000H和2001H

5、 的两内存单元内容相加, 结果存在地址2002H单元中。,汇编格式指令与机器指令一一对应 用汇编语言编好的程序, 必须翻译成机器码表示的程序,计算机才能运行。 汇编程序是将汇编语言程序翻译成机器语言的一种系统程序。,用机器码编程: A0 00 20 02 06 01 20 A2 02 20,用汇编语言编写的确程序段为: MOV AL , var1 ADD AL , var2 MOV var3 , AL,第3章 80 x86的指令系统和寻址方式,10,汇编语言和机器语言编写的程序: 面向机器,反映机器运行的实际过程, 与计算机的硬件结构和指令系统密切相关 算法是用计算机的指令, 寄存器等描述,

6、要了解CPU的编程结构、寻址方式、指令系统才能设计程序 占内存少,执行速度快 编写繁琐、调试困难,汇编语言相对于机器语言编写的程序: 汇编语言程序,易读易懂,便于修改。,第3章 80 x86的指令系统和寻址方式,11,(4) 高级语言 高级语言是独立于机器、面向过程或对象的语言。 算法是按照人的思维方式给出,比较接近人的自然语言。 上例 高级语言程序段为: var3 = var1 + var2 由翻译程序将高级语言源程序翻译目标程序, 即用机器码表示的程序,机器才能执行。 (不同类型机器由于指令系统不同,它们的编译程序不同) Fortran、 Basic、 C等均是高级语言。 使用高级语言编程

7、,效率高,可读性、可移植性强。,第3章 80 x86的指令系统和寻址方式,12,(1) 操作码 指明CPU要执行什么样的操作。 是一条指令必不可少的部分,用助记符表示。,(5)8086/8088指令格式简介,第3章 80 x86的指令系统和寻址方式,13,操作数来源 指明操作数所在的地方,有三种来源: 操作数在指令中,称立即数操作数 如 MOV AL , 9 操作数在寄存器中,称寄存器操作数 指令中给出用符号表示的寄存器名。 如 MOV AL , 9 操作数在内存单元中,称存储器操作数或内存操作数 指令中给出该内存单元的地址。用 表示存储器操作数 如 MOV AL , 2000H ,第3章 8

8、0 x86的指令系统和寻址方式,14,操作数个数 按指令格式中,操作数个数的多少分为四类: 无操作数: 指令只有一个操作码,没有操作数 单操作数: 指令中给出一个操作数 双操作数: 指令中给出两个操作数。 三操作数:指令中给出两个操作数。,第3章 80 x86的指令系统和寻址方式,15, 无操作数: 指令只有一个操作码,没有操作数。,有两种可能: 有些操作不需要操作数。 如 HLT,NOP等处理机控制指令。 操作数隐含在指令中。 如 AAA , DAA等调整指令。,第3章 80 x86的指令系统和寻址方式,16, 单操作数: 指令中给出一个操作数。,有两种可能: 有些操作只需要一个操作数 如

9、INC AL ; (AL) (AL)+ 1 有些操作将另一个操作数隐含在指令中 如 MUL BL ; (AX) (AL)(BL),第3章 80 x86的指令系统和寻址方式,17,第3章 80 x86的指令系统和寻址方式,18, 三操作数: 指令中给出三个操作数。 如 IMUL BX, DX, 6 ;(BX) (DX) *6 目的操作数 源操作数 立即数 操作后的结果通常存放在目的操作数中。,第3章 80 x86的指令系统和寻址方式,19,一地址指令: INC AX DEC CX 二地址指令: MOV AX, 2000H ADD AH, BL 三地址指令: IMUL BX,DX,7,指令:,通常

10、,指令的第一个字节或头两个字节为指令的操作码和寻址方式,统称为操作码域。 操作码域之后的字节统称为操作数域,(5) 指令的格式,指令格式 操作码 操作数 例 ADD AL,10H,第3章 80 x86的指令系统和寻址方式,20,3.2 80 x86的寻址方式,与数据有关的寻址方式 与转移地址有关的寻址方式,第3章 80 x86的指令系统和寻址方式,21,3.2.1 与数据有关的寻址方式 以 MOV 指令为例,1. 立即寻址方式* 操作数在指令中给出 MOV AL, 5 MOV AX, 3064H * 只能用于SRC字段 * SRC 和 DST的字长一致 MOV AH, 3064H,适用于给寄存

11、器赋初值,第3章 80 x86的指令系统和寻址方式,22,2. 寄存器寻址方式* 操作数在指定的寄存器中 MOV AX, BX MOV AL, BH * 字节寄存器只有 AH AL BH BL CH CL DH DL * SRC 和 DST的字长一致 MOV AH, BX * CS不能用MOV指令改变 MOV CS, AX,运算速度快,第3章 80 x86的指令系统和寻址方式,23,存储器寻址(除代码段) 四种成分的组合,EA基址+(变址*比例因子)+位移量,位移量:存放在指令中的一个8位、16位或32位的数, 通常是个地址 基 址: 基址寄存器中的内容,通常用来指向数组或字符串的首地址 变

12、址: 变址寄存器中的内容,通常用来指向数组中的某个元素或字 符串中的某个字符 比例因子:386+,值可为1,2,4,8,与变址相乘用于访问元素长度 为2、4、8字节的数组,第3章 80 x86的指令系统和寻址方式,24,16位/32位寻址时有效地址的四种成分的组成,第3章 80 x86的指令系统和寻址方式,25,默认段选择规则,第3章 80 x86的指令系统和寻址方式,26,段跨越前缀 用于改变系统所指定的默认段选择规则,有三种情况不允许使用段跨越前缀: 1、串处理指令的目的串必须用ES 2、PUSH指令的目的和POP指令的源必须用SS段 3、指令必须存放在CS段中,第3章 80 x86的指令

13、系统和寻址方式,27,第3章 80 x86的指令系统和寻址方式,28,3. 直接寻址方式* 有效地址EA由指令直接给出 有效地址EA:操作数的偏移地址 物理地址PA = 16d (DS) + EA 例:MOV AX, 2000H EA=2000H, 假设(DS)=3000H, 那么(PA)=32000H 例:操作数地址可由变量(符号地址)表示 MOV AH, VALUE ( VALUE DB 10 ),50,30,32000,AH AL,30,50,(AX) = 3050H,第3章 80 x86的指令系统和寻址方式,29,3. 直接寻址方式* * 隐含的段为数据段 DS * 可使用段跨越前缀

14、MOV AX, ES :2000H * 使用变量时,要注意变量的属性 VALUE DB 10 MOV AX, VALUE MOV AX, WORD PTR VALUE * 适于处理单个变量,第3章 80 x86的指令系统和寻址方式,30,80 x86规定: 双操作数指令中,只能有一个操作数使用存储器方式,因此,经常有一个变量要送到寄存器。,第3章 80 x86的指令系统和寻址方式,31,4. 寄存器间接寻址方式* EA在基址寄存器(BX/BP) 或变址寄存器(SI/DI)中 BX, SI, DI (DS) 物理地址 = 16d (DS) + BP (SS) 物理地址 = 16d (SS) +

15、(BP) MOV AX, BX PA = 16d (DS) + (BX) MOV AX, ES:BX PA = 16d (ES) + (BX) MOV AX, BP PA = 16d (SS) + (BP),(BX) (SI) (DI),第3章 80 x86的指令系统和寻址方式,32,4. 寄存器间接寻址方式* * 不允许使用AX、CX、DX存放EA MOV AX, CX * SRC 和 DST的字长一致 MOV DL, BX ; BX指示一个字节单元 MOV DX, BX ; BX指示一个字单元 * 适于数组、字符串、表格的处理,第3章 80 x86的指令系统和寻址方式,33,5. 寄存器相对寻址方式(直接变址寻址)* 例: MOV AX, COUNTSI 或 MOV AX, COUNT+SI 假设(DS)=3000H, (SI)=2000H, COUNT=3000H 那么 PA = 35000H 假设(35000H)=1234H, 那么 (AX)=1234H * 适于数组、字符串、表格的处理,有效地址 =,(BX) (BP) (SI) (DI),+,8位 16位

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号