文档介绍:Intel系列CPU
8086到奔腾4
以8086为主
第三章 80X86指令系统与汇编程序
指令的基本形式
寻址方式
指令的执行时间
80X86指令集
汇编程序
本章重点
指令的基本形式
80X86的寻址方式
80X86的主要指令
简单汇编程序编写
指令及其格式
指令及指令集
计算机能够识别和执行的基本操作命令
指令的作用(3W)
告诉CPU干什么?What?
告诉CPU从哪儿取数据?Where?
告诉CPU下一条指令在哪儿?Where?
指令的格式
操作码
操作数或操作数地址
指令总长度或转移目标地址
10111011 00110100 00010010
操作码
操作数
指令的数量
数值计算
信息处理
多媒体
指令数量取决于CPU的功能
80X86CPU指令数量
8086:133条
整数运算
输入输出
程序控制
扩充:
多媒体指令
浮点运算指令
Cache处理指令
指令系统(CISC复杂与 RISC精简)
指令数量影响:
程序的执行速度
CPU的复杂程度
10111011 00110100 00010010
MOV BX,1234H
80X86的指令表示格式
指令的通用格式
Why?
80X86指令在内存的存放形式
80X86的指令
操作码和操作数由一或多个字节(8位)组成
二进制与助记符(把十六进制数1234送CPU的BX寄存器)
双操作数:操作码目的操作数,源操作数
操作码
操作数或操作数地址
低字节在前(34H)高字节在后(12H)
指令长度1到6字节
00010010
10111011
00110111
10000
10001
10002
80X86的指令执行过程
译码器
从内存数据段[1234H]
取一个十六位数据
执行指令
MOV AX,[1234H]
10000
10001
10002
21234
21235
20000
00010010
10100001
00110100
……
……
……
……
10010011
01111100
……
代码段
数据段
10100001 00110100 00010010 …
取指令
指令队列
BIU负责
EU负责
并
行
处
理
AX
7C 93
地址加法器
DS(2000)
程序的书写
机器语言:用二进制编写
汇编语言:
行号:操作码目的操作数,源操作数;注释
高级语言:一条语言对应多个机器语言
静态连接(.obj+.lib)
动态连接(.obj+.dll)
机器码产生的过程
编辑:编写源程序
(用ASCII码编写的文本文件)
格式(.com)
编译:生成目标文件()
连接:生成EXE文件(.exe)
.c ;.cpp ;.bas ;.for; .pas; .asm
各段在同一64KB内
Condition?
静态连接
动态连接
EXE文件
包含连接函数代码
不含连接函数代码
内存使用
重复使用,浪费
只有一份,节约
能否独立运行
能
需要DLL支持
应用环境
DOS
Windows
集成开发环境IDE(编辑+编译+连接+调试)
寻址目的
确定本条指令的操作数据
在指令中
在存储器中
在寄存器中
确定下一条指令的地址
根据指令长度计算
根据转移指令的目标地址
PA:存储器内的绝对地址(20位)
EA:某个段内的相对地址(16位)
执行前
40H
10H
AH
AL
立即寻址
操作数在指令中,不需从其它地方取
操作数若超过一字节,则低字节在低地址
只能用于源操作数,不能用于目的操作数
MOV 1234H , AX X
例:MOV AX , 2050H
操作码
代码段
高地址
低地址
50H
20H
执行后
20H
50H