第2章 非法传送种种 两个操作数的类型不一致[示例 ■例如源操作数是字节,而目的操作 数是字;或相反 >两个操作数不能都是存储器[示例 ■传送指令很灵活,但主存之间的直 接传送却不允许 >段寄存器的操作有一些限制[示例 ■段寄存器属专用寄存器,对他们的 操作能力有限
第 2 章 非法传送种种 ➢两个操作数的类型不一致 ◼例如源操作数是字节,而目的操作 数是字;或相反 ➢两个操作数不能都是存储器 ◼传送指令很灵活,但主存之间的直 接传送却不允许 ➢段寄存器的操作有一些限制 ◼段寄存器属专用寄存器,对他们的 操作能力有限 示例 示例 示例
第2章 交换指令XCHG( exchange) XCHG >把两个地方的数据进行互换 XCHG reg, reg/mem g reg) reg/mem >寄存器与寄存器之间对换数据例题26 >寄存器与存储器之间对换数据例题27 >不能在存储器与存储器之间对换数据
第 2 章 交换指令XCHG(exchange) ➢把两个地方的数据进行互换 ➢寄存器与寄存器之间对换数据 ➢寄存器与存储器之间对换数据 ➢不能在存储器与存储器之间对换数据 XCHG XCHG reg,reg/mem ;reg reg/mem 例题2.7 例题2.6
第2章 换码指令XLAT( translate) XLAT 将BX指定的缓冲区中、AL指定的位移 处的一个字节数据取出赋给AL XLAt a1-ds:bx1例题28 换码指令执行前: 在主存建立一个字节量表格,内含要转换成的目的代码 表格首地址存放于BX,A存放相对表格首地址的位移量 >换码指令执行后: 将AL寄存器的内容转换为目标代码
第 2 章 ➢换码指令执行前: 在主存建立一个字节量表格,内含要转换成的目的代码 表格首地址存放于BX,AL存放相对表格首地址的位移量 ➢换码指令执行后: 将AL寄存器的内容转换为目标代码 换码指令XLAT(translate) ➢将BX指定的缓冲区中、AL指定的位移 处的一个字节数据取出赋给AL XLAT XLAT ;al←ds:[bx+al] 例题2.8
第2章 2.3.2堆栈操作指令 堆栈是一个“后进先出高地址 存储器 FILQ(或说“先进后 出FIL0)的主存区域, 位于堆栈段中;S段寄栈底一 ←SP 〔栈顶〕 存器记录其段地址 > 堆栈只有一个出口,即 当前栈顶;用堆栈指针堆楼段 寄存器SP指定 >栈顶是地址较小的一端 O000H (低端),栈底不变 (a)堆栈段
2.3.2 堆栈操作指令 ➢ 堆栈是一个“后进先出 FILO”(或说“先进后 出FILO”)的主存区域, 位于堆栈段中;SS段寄 存器记录其段地址 ➢ 堆栈只有一个出口,即 当前栈顶;用堆栈指针 寄存器SP指定 ➢ 栈顶是地址较小的一端 (低端),栈底不变 第 2 章
第2章 堆栈的操作 >堆栈只有两种基本操作:进栈和 出栈,对应两条指令PUSH和PoP PUSH POP ;进栈指令先使 ;出栈指令把栈顶 堆栈指针SP减2 的一个字传送至指 然后把一个字操定的目的操作数 作数存入堆栈顶(然后堆栈指针SP加2 部
第 2 章 堆栈的操作 ➢堆栈只有两种基本操作:进栈和 出栈,对应两条指令PUSH和POP PUSH ;进栈指令先使 堆栈指针SP减2, 然后把一个字操 作数存入堆栈顶 部 POP ;出栈指令把栈顶 的一个字传送至指 定的目的操作数, 然后堆栈指针SP加2