☆寄存器间接、寄存器相对、基址变址、相对基 址变址四种寻址方式的所使用的寄存器是哪些? 指令操作例: MOVAX,DATA[DI[BX] 若(DS)=8000H,(BX)=2000H(DⅠ=1000H DATAE200H 求数据的有效地址EA(逻辑地址),和物理地址?
指令操作例:MOV AX,DATA[DI][BX] 若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H 求数据的有效地址EA(逻辑地址),和物理地址? ❖寄存器间接、寄存器相对、基址变址、相对基 址变址四种寻址方式的所使用的寄存器是哪些?
寄存器间接、寄存器相对、基址变址、相 对基址变址四种寻址方式的比较: 寻址方式 指令操作数形式 ■寄存器间接—只有一个寄存器( BX/BP/SID之一) 寄存器相对 个寄存器加上位移量 基址一变址—两个不同类别的寄存器 相对基址变址—两个不同类别的寄存器加上位移量
22 2 •寄存器间接、寄存器相对、基址变址、相 对基址变址四种寻址方式的比较: • • 寻址方式 指令操作数形式 • ◼ 寄存器间接—— 只有一个寄存器(BX/BP/SI/DI之一) ◼ 寄存器相对—— 一个寄存器加上位移量 ◼ 基址—变址 —— 两个不同类别的寄存器 ◼ 相对基址-变址 —— 两个不同类别的寄存器加上位移量
指令操作例: MOVAX, DATALDI[BX] 若(DS)=8000H,(BX)=2000H(DⅠ=1000 H DATA=200H 则指令执行后(AH)=[83201H](AL=|83200H DS8000 BX12000 操作码 DI000 代码段 DATA 0200 83200 83200HYY XX 数据段 AX AH AL
33 指令操作例:MOV AX,DATA[DI][BX] 3 若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H 则指令执行后(AH)=[83201H], (AL)=[83200H] 83200 83200H AX AH AL + DATA 0200 操作码 代 码 段 数 据 段 . . . . . . . . . YY XX DS 8000 BX 2000 DI 1000
微机原理及应用 8086指令系统 ☆传送类指令 ☆数据操作类指令 ☆串操作指令 ☆控制类指令 本章要求
微机原理及应用 4 4 8086指令系统 传送类指令 数据操作类指令 串操作指令 控制类指令 本章要求
微机原理及应用 5 传送类指令 传送类指令是指令系统中最活跃的一类指令, 也是条数最多的一类指令,主要用于数据的保 存及交换等场合。这类指令分为以下四种 通用数据传送指令 ☆且标地址传送指令 标志位传送指令 ☆输入/输出数据传送指令(IO读写) 结 返
微机原理及应用 5 传 送 类 指 令 5 传送类指令是指令系统中最活跃的一类指令, 也是条数最多的一类指令,主要用于数据的保 存及交换等场合。这类指令分为以下四种: 通用数据传送指令 目标地址传送指令 标志位传送指令 输入/输出数据传送指令(IO读写) 小结 返 回
微机原理及应用 通用数据传送指令 通用数据传送指令主要由以下几部分组成: ☆最基本的传送指令 堆栈操作指令 数据交换指令 查表换码指令 字位扩展指令 特点 该类指令的执行对标志位不产生影响 返回
微机原理及应用 6 通用数据传送指令 6 通用数据传送指令主要由以下几部分组成: 最基本的传送指令 堆栈操作指令 数据交换指令 查表换码指令 字位扩展指令 返 回 特点: 该类指令的执行对标志位不产生影响
微机原理及应用 最基本的传送指令 指令格式:Mov目的操作数,源操作数 指令功能:实现CPU内部寄存器之间的数据传 送、寄存器和内存之间的数据传送,以及把 个立即数送给CPU的内部寄存器或者内存单元
微机原理及应用 7 最基本的传送指令 7 指令格式:MOV 目的操作数,源操作数 指令功能:实现CPU内部寄存器之间的数据传 送、寄存器和内存之间的数据传送,以及把一 个立即数送给CPU的内部寄存器或者内存单元
微机原理及应用 8 MO指令示例 MOV ES. DX DX中16位数据送ES MOV AX,[BX];BX和BX+1所指的两个内存单元的内容送AX MOV[D,Ax;累加器的内容送D和D+所指的两个单元 MOV CX,[1000H];将10001001两单元的内容送CX MOV DX,5040H;立即数5040H送DX MOV WORD PTR[S,6070H;立即数6070送S和S+所指 的两个单元;这里的PTR是一个汇编操作符,与前 面的WORD一起,意思是从SI地址中取一个字 而不是一个字节
微机原理及应用 8 MOV指令示例 8 MOV ES, DX ; DX中16位数据送ES MOV AX, [BX] ; BX和BX+1所指的两个内存单元的内容送AX MOV [DI], AX ; 累加器的内容送DI和DI+1所指的两个单元 MOV CX, [1000H] ; 将1000H和1001H两单元的内容送CX MOV DX, 5040H ; 立即数5040H送DX MOV WORD PTR[SI], 6070H ; 立即数6070送SI和SI+1所指 的两个单元; 这里的PTR是一个汇编操作符,与前 面的 WORD一起,意思是从SI地址中取一个字; 而不是一个字节
微机原理及应用 9 一般数据传送指令 注意 两操作数字长必须相同 两操作数不允许同时为存储器操作数 两操作数不允许同时为段寄存器 在源操作数是立即数时,目标操作数不能是段寄存器 IP和CS不作为目标操作数, FLAGS一般也不作为操作数 在指令中出现
微机原理及应用 9 9 一般数据传送指令 注意: • 两操作数字长必须相同 • 两操作数不允许同时为存储器操作数 • 两操作数不允许同时为段寄存器 • 在源操作数是立即数时,目标操作数不能是段寄存器 • IP和CS不作为目标操作数,FLAGS一般也不作为操作数 在指令中出现
微机原理及应用 10 堆栈操作指令 指令格式:PUSH源操作数/POP目的操作数 实现功能:完成对寄存器的值的保存和恢复 。注意事项:使用堆栈操作指令时,应预置堆栈 段寄存器SS、堆栈指示器SP的值,使SP指向 当前堆栈段的栈顶。在执行PUSH指令时,堆 栈指示器SP自动减2;然后,将一个字以源操 作数传送至栈顶。POP指令是将SP指出的当前 堆栈段的栈顶的一个操作数,传送到目的操作 数中,然后,SP自动加2,指向新的栈顶。 示例
微机原理及应用 10 堆栈操作指令 10 • 指令格式:PUSH 源操作数/POP 目的操作数 • 实现功能:完成对寄存器的值的保存和恢复 • 注意事项:使用堆栈操作指令时,应预置堆栈 段寄存器SS、堆栈指示器SP的值,使SP指向 当前堆栈段的栈顶。在执行PUSH指令时,堆 栈指示器SP自动减2;然后,将一个字以源操 作数传送至栈顶。POP指令是将SP指出的当前 堆栈段的栈顶的一个操作数,传送到目的操作 数中,然后,SP自动加2,指向新的栈顶。 示 例