计算机应用基础3-2教材

上传人:我** 文档编号:116001138 上传时间:2019-11-15 格式:PPT 页数:78 大小:584.50KB
返回 下载 相关 举报
计算机应用基础3-2教材_第1页
第1页 / 共78页
计算机应用基础3-2教材_第2页
第2页 / 共78页
计算机应用基础3-2教材_第3页
第3页 / 共78页
计算机应用基础3-2教材_第4页
第4页 / 共78页
计算机应用基础3-2教材_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《计算机应用基础3-2教材》由会员分享,可在线阅读,更多相关《计算机应用基础3-2教材(78页珍藏版)》请在金锄头文库上搜索。

1、引子: (自学) 1. 指令助记符表 2. 学习指令的要点 3. 利用DEBUG程序,学习指令系统 4. 指令中操作数的表示 5. 书写指令注意事项 1 1. 指令助记符表 2 3 2. 学习指令的要点 从以下几个方面来掌握一条指令: l 指令的助记符 l 指令的格式:操作数的个数、类型(B,W,DW) l 执行的操作:指令执行后的结果 包括: 哪些寄存器、内存单元的值发生了变化 对标志位有无影响,哪些受影响 l 特点及注意事项 只介绍常用的指令,其他需要时可自学。 4 D:DEBUG - A ;汇编指令 0AF8:0100 MOV AL,0B5 0AF8:0102 ADD AL, 8F 0A

2、F8:0104 - R ;显示指令执行前各寄存器的值 AX=0000 BX=0000 CX=0000 DX=0000 、 CS=0AF8 IP=0100 NV UP EI PL NZ NA PO NC - T=100 2 ;执行指令,查看结果 AX=0044 BX=0000 CX=0000 DX=0000 、 CS=0AF8 IP=0104 OV UP EI PL NZ AC PE CY 0AF8:0104 2080FC01 AND BX+SI+01FC, AL - 1 0 1 1 0 1 0 1 + 1 0 0 0 1 1 1 1 进位 1 1 1 1 1 1 1 0 1 0 0 0 1 0

3、 0 编程完成 B5h + 8Fh = ? 学习加法ADD指令及其对状态标志位的影响。 3. 利用DEBUG学习指令系统(示例,实验) 5 4. 指令中操作数的表示 符号表示内容 data 立即数操作数 reg 通用寄存器操作数 8 位: AH、AL、BH、BL、CH、CL、DH、DL 16 位: AX、BX、CX、DX、BP、SP、SI、DI segreg 段寄存器 CS 、DS、SS、ES mem 或 存储器操作数 (5种寻址方式) src 源操作数 dst 目的操作数 ( ) 注释时表示寄存器、存储器、端口的内容 oprd1 oprd2 两操作数 6 5. 书写指令注意事项(本章全部结束

4、后再复习) l 不区分字母的大小写 下列写法表示同一条指令: MOV AX, 1ABDH mov ax, 1abdh l 不自创助记符 将 MOV AL , 0 写成 MOVE AL,0 JMP lable 写成 JUMP lable 7 l 注意操作数的范围 对字节操作指令 0 FFH 0 255 对字操作指令 0 FFFFH 0 65535 MOV AL , 260 MOV AX ,70000 MOV AL, 1FFH MOV AL, 2ABCDH 8 l 对无操作数指令,不添加操作数。 STC AL l 对单操作数指令,操作数不能是立即数。 IMUL 6 9 l 对双操作数指令 不能两个

5、同为存储器操作数 MOV DI , SI 目的操作数不能是立即数 ADD 3 , AL 两个操作数的类型应相同 SUB AX , BL 若 value 定义为字类型存储器变量: MOV CL, value BX 10 l 内存操作数的属性应明确。 MOV BX ,0 MOV byte ptr BX , 0 MOV word ptr BX , 0 MOV BX , AL MOV BX , AX 11 l A、B、C、D、E、F开头的十六进制数前面加0, 与H结尾的标识符区别。 如 寄存器名: AH、BH、CH、 DH 变量名 : abcdH 等 例 mov AL, 0AH mov AL, AH

6、mov BX, 0abcdH 12 l CS 和 IP的值只在控制转移指令中修改。 l 对非控制转移指令,取完指令后IP值自动 指向下条指令。 l 段寄存器CS的值,只在MOV、PUSH中可作操作数, 且这两条指令执行结果不改变CS值。 MOV AX, CS PUSH CS l IP、PSW两个寄存器不作为操作数在指令中出现。 mov IP , 1234H mov PSW , 0F0FH l PSW状态寄存器的值由指令执行后确定, 不同的指令对各标志的影响不同。 13 数据传送是最基本、最重要的一种操作 实际程序中,使用的比例最高 寄存器 寄存器 寄存器 内存单元 寄存器 I/O端口 设置寄存

7、器、内存单元的初始值 二 数据传送指令 14 按传送内容,可分为四类: 1. 通用数据传送 MOV, PUSH, POP, XCHG, XLAT 2. 地址传送 LEA, LDS, LES 3. 标志传送 PUSHF, POPF, LAHF, SAHF 4. 输入输出传送 IN, OUT 特点: 1. 除POPF、SAHF外,其他传送指令对标志位均无影响 2. 唯一允许以段寄存器做操作数的指令 且只有MOV、PUSH、POP这三条允许 15 1. 通用传送指令 MOV、PUSH、POP、XCHG、XLAT reg/mem/segreg reg reg/segreg mem reg/mem se

8、greg reg/mem data 可实现 (1)MOV传送指令 格式 MOV dst,src 执行 ( dst ) ( src ) 16 例 : reg/mem/segreg reg 通用寄存器/存储器/段寄存器通用寄存器 MOV AL , BL MOV BX , AL MOV DS , AX reg/segreg mem 通用寄存器/段寄存器 存储器 MOV AL , BX MOV DS , BX+SI reg/mem segreg 通用寄存器/存储器 段寄存器 MOV BX , CS MOV BX , DS reg/mem data 通用寄存器/存储器 立即数 MOV Al , 9 MO

9、V BX , OFFSET buffer MOV BYTE PTR value , 0 MOV WORD PTR BX , 1 17 MOV指令特点及注意事项: l 双操作数指令 (注意双操作指令的特点) l 可进行字节或字传送 l 不允许存储器传送到存储器 MOV BX , value MOV DI, SI MOV AX ,value MOV BX ,AX MOV AL ,SI MOV DI ,AL 18 l 可对 DS、ES、SS 赋值 但不允许立即数直接传送给段寄存器 MOV DS,AX MOV ES ,BX MOV DS,1000H MOV AX ,1000H MOV DS,AX l

10、CS不能做目的操作数, 不能通过传送指令改变CS的值 MOV CS , AX 19 l 不允许段寄存器传送到段寄存器 MOV ES ,DS MOV AX , DS MOV ES , AX D:MASMDEBUG -A 1693:0100 MOV ES, DS Error 1693:0100 MOV AX, DS 1693:0102 MOV ES, AX 1693:0104 - 20 例 编程将CL寄存器的内容传送到200:100H单元中。 MOV AX, 200H MOV DS , AX ; (DS) = 200H MOV 100H , CL ;(02100H) = (CL) 编程1: MOV

11、 AX, 200H MOV DS , AX ; (DS) = 200H MOV DI , 100H ; (DI) = 100H MOV DI , CL ;(02100H) = (CL) 编程2: MOV 200:100H , CL 21 MOVMOV指令应用(自学)指令应用(自学) 例: 实现将AREA1开始的100个数据传送到AREA2开始的单元。 AREA1: AREA2: 100个数据 22 分析题意: 可以用200条MOV指令来完成100个数据传送, 指令操作重复,每个数据传送后的地址是变化的。 可以利用循环, 但每循环一次要修改地址(源地址和目的地址), 必须把地址放在寄存器当中,用

12、寄存器间接寻址来寻找操作数. 23 得到如下程序: MOV SI,OFFSETOFFSET AREA1 MOV DI,OFFSETOFFSET AREA2 MOV CX,100 AGAIN :MOV AL,SI MOV DI,AL INC SI INC SI ;修改地址指针修改地址指针 INC DI INC DI ;修改地址指针修改地址指针 DEC CXDEC CX;修改个数修改个数 JNZ AGAIN 24 -计算计算EA EA 需要的需要的 时钟数:时钟数:如下表所示: (略) (若段超越,再加两个时钟T周期) 寄存器间接寻址 寻址方式计算EA所需时间 直接寻址 寄存器相对寻址 基址加变址

13、寻址 BP+DI, BX+SI BP+SI, BX+DI 相对基址加变址寻址 BP+DI+位移量】, BX+SI+位移量 BP+SI+位移量】, BX+DI+位移量 6T 5T 9T 7T 8T 11T 12T 25 -指令字节数指令字节数:指令字节数与寻址方式有关。 通常操作码占二个字节; 立即寻址 : 立即数增加1-2个字节数; 操作数在内存中 : 直接寻址 :直接地址为1-2个字节,总的指令长3-4个字节; 寄存器间接寻址(没有位移量): 2个字节; 变址寻址或者相对基址加变址 : 都有1-2字节的位移量, 指令字节数为2-4个 字节。 -传送次数:传送次数:指执行指令时,内存与CPU之

14、间数据传送的次数。 凡是立即数寄存器或寄存器之间的传送无此传送数。 凡是寄存器与存储器之间传送次数为1。 26 (2) PUSH (Push word onto stack) POP (Pop word off stack) 这是两条堆栈操作指令。 1) 1) 先介绍一下什么是堆栈,为什么需要堆栈先介绍一下什么是堆栈,为什么需要堆栈 l 堆栈是按照先进后出原则组织的一段内存区域。 通常用于存放一些重要数据, 如:程序的地址、或是需要恢复的数据。 l 为方便数据的存放和恢复, 设置专门的指针,指向堆栈中要操作的单元。 段值由 SS 给出,偏移地址由 SP 给出 SS 堆栈段寄存器 (stack segment) SP 堆栈指针寄存器 (stack point) SS:SP 27 特点:特点: 下推式的(规定堆栈设置在堆栈段内)改变SP的内容, 随着推入堆栈内容增加,SP的值减少。 先进后出工作原则(Last In First Out 简称LIFO) 堆栈在内存中的情况: 28 堆栈在内存中的情况:堆栈在内存中的情况: 可以用一条立即数传送指令给SP赋 值,确定SP在SS段中的初始位置。 例:设 (SS)

展开阅读全文
相关资源
相关搜索

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

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