寻址方式和指令系统答案.pptVIP

  • 81
  • 0
  • 约1.28万字
  • 约 54页
  • 2016-12-02 发布于湖北
  • 举报
* * * * * * * * * * * * * * 1.通用数据传送指令(General Purpose Data Tranfers) §3-3 8086的指令系统 ——数据传送指令 ⑴ MOV传送指令(Move) 指令格式:MOV 目的,源 指令功能:实现CPU的内部寄存器间或寄存器与存储器间的数据传送。 例: MOV AX,0FF00H MOV [DI],AX MOV CX,[1000H] MOV BL,40H MOV WORD PTR[SI],01H MOV AL,BL * §3-3 8086的指令系统 ——数据传送指令 注意: 指令中至少要有一项明确说明传送的是字节还是字; IP寄存器不能用作源操作数或目的操作数; 立即数和CS寄存器不能用作目的操作数; 除了源操作数为立即数的情况外,两个操作数中必有一个是寄存器,但不能都是段寄存器;这就是说,MOV指令不能在两个存储单元之间直接传送数据,也不能在两个段寄存器之间直接传送数据。 请判断下列指令是否正确 MOV AX,BL MOV [BX],[SI] MOV DS,1200H MOV AX,[6000H] MOV SS,ES MOV CS,AX M0V [BX],1234H MOV 10H,AL * * §3-3 8086的指令系统 ——数据传送指令 ⑵PUSH进栈指令 指令格式:PUSH 源 指令功能:数据入堆栈 工作过程: SP←SP-2;(SP+1,SP)←源 源操作数要求:可以是16位通用寄存器、段寄存器、存储器中的数据字,但不能是立即数。 最后一项 (SS) 压入 高地址 栈底 弹出 栈顶 (SP) SP总是指向 偶地址单元 最大容量64K 段址 * §3-3 8086的指令系统 ——数据传送指令 ⑶POP出栈指令 指令格式:POP 目的 指令功能:数据出堆栈 工作过程: 目的 ←(SP+1,SP) ; SP←SP+2; 目的操作数要求:可以是16位通用寄存器、段寄存器、存储单元,但CS不能作目的操作数。 最后一项 高地址 栈底 (SP) 压入 弹出 栈顶 (SS) 最大容量64K SP总是指向 偶地址单元 段址 * §3-3 8086的指令系统 ——数据传送指令 工作过程: * §3-3 8086的指令系统 ——数据传送指令 ⑷XCHG交换指令(Exchange) 指令格式:XCHG 目的, 源 指令功能:源操作数、目的操作数数据交换。 操作数要求:交换可以在寄存器之间、寄存器与存储器之间进行;段寄存器不能作为操作数;不能直接交换两个存储单元中的内容。 例 设AX=2000H,DS=3000H,BX=1800H, (31A00H)=1995H。 则执行指令XCHG AX,[BX+200H]后,结果如何? 解:把内存中的一个字与AX中的内容进行交换。 源操作数的物理地址=3000×10H+1800H+200H=31A00H 指令执行后:AX=1995H,(31A00H)=2000H * §3-3 8086的指令系统 ——数据传送指令 指令格式:XLAT 转换表 或:XLAT 指令功能:使累加器(AL)中的一个值变换为内存表格中的某一个值,一般用来实现编码制的转换,即查表功能。 XLAT指令使用步骤: ▲使用之前必须先建立一个表格,表格中的内容是所需要转换的代码; ▲将转换表的起始地址装入?BX寄存器; ▲欲查的某项与表头地址的位移量?AL,即表格最多包含256个字节; ▲执行XLAT指令后,根据位移量从表中查到转换后的代码值?AL寄存器中。 ⑸XLAT表转换指令(Table Lookup—Translation) * §3-3 8086的指令系统 ——数据传送指令 例 若十进制数字0~9的LED七段码对照表如表3-4所示,试用XLAT指令求数字5的七段码值。 十进制数字 七段显示码 十进制数字 七段显示码 0 40H 5 12H 1 79H 6 02H 2 24H 7 78H 3 30H 8 00H 4 19H 9 18H 表3-4 十进制数的七段显示码表 * * §3-3 8086的指令系统 ——数据传送指令 程序如下: TABLE DB 40H,79H,24H,30H,19H;

文档评论(0)

1亿VIP精品文档

相关文档