第3章_1 寻址方式.ppt
文本预览下载声明
课后作业 3.2,3.3,3.4, 3.7,3.8 * * 第三章 指令系统 1 2 8086CPU的指令格式 8086CPU的指令系统 3 8086CPU的寻址方式 8086CPU的指令格式 指 令:计算机完成某种操作的命令。 机器语言:指令的二进制编码构成的程序设计语言。 汇编语言:指令的助记符编码构成的程序设计语言。 本书所称指令一般是指汇编指令,即用汇编语言编写的指令。 MOV AX,05C7H B8C705H 汇编指令 机器指令 汇编语言 机器语言 编译(一对多) 汇编(一对一) 高级语言 C/C++ PASCAL …… 机器指令格式 操作码 地址码 每条机器指令都由”0“和”1“组成,包含操作码和地址码。格式: 操作码:说明指令的性质与功能。 地址码:参与运算的操作数或存放操作数的地址。 分固定长度和可变长度。X86系列CPU(CISC)采用可变长度,ARM(RISC)采用固定长度。 8086CPU的机器指令长度为1~6个字节。 如:汇编指令MOV AX,05C7H的机器指令编码为B8C705H,转换成二进制为: 1011 1000 1100 0111 0000 0101B 汇编指令格式 单操作数指令 INC CX DEC AX 操作码:用助记符表示,执行一种操作,如传送、运算、移位、跳转等操作。 操作数:各种操作的对象,可以是具体的数值、寄存器或存储器地址,可有0/1/2个操作数。操作数和操作码之间应用空格或制表符隔开。 标号:用符号表示存放该条指令的存储器地址,符号后加冒号。 注释:以分号为首,对该条指令进行说明。 用符号来表示操作码和地址码。格式: 操作码助记符 操作数助记符 ;注释 标号: 无操作数指令 STC CLI 双操作数指令 ADD CX,1 SUB AX,1 目的操作数 源操作数 8086CPU的寻址方式 寻 址:寻找操作数或操作数的地址 寻址方式:寻找操作数地址的方法 操作数的位置 操作数名称 寻址方式名称 在指令中 立即数 立即寻址(immediate addressing) 在寄存器中 寄存器操作数 寄存器寻址(register addressing) 在存储器中 存储器操作数 存储器寻址(memory addressing ) 在I/O端口中 I/O操作数 I/O端口寻址(I/O port addressing ) 立即寻址(Immediate Addressing) 操作数直接存放在指令中,紧跟在操作码之后,作为指令的一部分,存放在代码段里,这种操作数称为立即数。 指令:MOV AL,07H 指令:MOV AX,1A2BH 立即数不能做目的操作数。 (×)MOV 3,AL 源、目的操作数的字长必须一致。 (×)MOV AH, 3064H 寄存器寻址(register Addressing) 操作数存放在CPU内部的某个寄存器中,指令中不出现操作数本身,而是给出存放操作数的寄存器的名字。 寄存器寻址既可用于源操作数,也可用于目的操作数。 MOV CL,BL ;将BL中的8位寄存器操作数送寄存器CL中 MOV AX,DX ;将DX中的16位寄存器操作数送寄存器AX中 MOV DS,AX ;将AX中的16位寄存器操作数送寄存器DS中 INC SI ;将SI寄存器的内容加1 并非所有寄存器都可自由使用。 (×)MOV CS,AX 源、目的操作数的字长必须一致。 (×)MOV AH, BX 寻址速度很快。 存储器寻址(Memory Addressing) 操作数存放在存储器中,CPU取出指令后,为了获得操作数(对于源操作数)或操作数的存放地址(对于目的操作数)还要再次访问存储器。 指令中以逻辑地址(有效地址EA)表示操作数存放的位置,可能存放在存储器的任意一个逻辑段中,CPU必须计算出操作数的物理地址才能完成存储单元的读、写。 存储器寻址既可用于源操作数,也可用于目的操作数,但两者不能同时使用。 用方括号对[]表示存储器寻址。 逻辑地址LA:段地址:偏移地址 物理地址PA:段地址×16+偏移地址 有效地址EA:偏移地址 存储器操作数具有三个属性: 段 地 址:操作数所在的逻辑段的段地址。 偏移地址:相对段地址的偏移量。 数据类型:操作数是一个字节/字,用BYTE PTR/WORD PTR区分。 寻址方式 有效地址EA 默认的段寄存器 直接寻址(③) [DISP] DS 寄存器间接寻址 (①/②) [BX] DS [BP] SS [SI] DS [DI] DS 基址寻址 (①+③) [BX+D
显示全部