2.段内间接寻址 这种寻址方式在段内进行,其转移的目标地址是16位寄 存器或两个相邻的存储单元的内容,即以寄存器或存储 器单元内容来更新IP的内容。如图3-11所示 例: JMP CX JMP WORD PTRBXI ROM 3000 操作码 代码段 Cx(IP)[4000 34000 34000H 操作码
2.段内间接寻址 这种寻址方式在段内进行,其转移的目标地址是16位寄 存器或两个相邻的存储单元的内容,即以寄存器或存储 器单元内容来更新IP的内容。如图3-11所示。 例:JMP CX JMP WORD PTR[BX] CS 3 0 0 0 操作码 4 0 0 0 3 4 0 0 0 代码段 . . . . . . CX(IP) . . . 34000H 操作码 ROM
3.段间直接寻址 在这种寻址方式中,指令码中将直接给出16位的段地址 和16位的段内偏移地址。 例: JMP FAR PTR DADD1 ROM 操作码 CS|4000 偏移量低字节00代码段 偏移量高字节30 IP 000 段地址低字节00 段地址高字节40 43000 4300OH 操作码
3.段间直接寻址 在这种寻址方式中,指令码中将直接给出16位的段地址 和16位的段内偏移地址。 例:JMP FAR PTR DADD1 操作码 CS 4 0 0 0 4 3 0 0 0 代码段 43000H 3 0 0 0 ROM IP . . . 偏移量低字节00 偏移量高字节30 段地址低字节00 段地址高字节40 { { 操作码
4.段间间接寻址 这种寻址方式和段内间接寻址相似。但是,由于确定转移地 址需要32位信息,因此只适用于存贮器寻址方式。用这种寻 址方式可计算出存放转移地址的存贮单元的首地址,与此相 邻的4个单元中,前两个单元存放16位的段内偏移地址;而 后两单元存放的是16位的段地址,如图3-13所示。 例: JMP DWORD PTR[BP][D ROM Ss3000 BP1000 操作码 +D12000 33000 300偏移量低字节0代码段 8000 偏移量高字节20 +20001 CH 段地址低字节00 段地址高字节80 82000 操作码
4.段间间接寻址 这种寻址方式和段内间接寻址相似。但是,由于确定转移地 址需要32位信息,因此只适用于存贮器寻址方式。用这种寻 址方式可计算出存放转移地址的存贮单元的首地址,与此相 邻的4个单元中,前两个单元存放16位的段内偏移地址;而 后两单元存放的是16位的段地址,如图3-13所示。 例:JMP DWORD PTR[BP][DI] 操作码 CS 8 0 0 0 8 2 0 0 0 代码段 2 0 0 0 ROM IP 偏移量低字节00 偏移量高字节20 段地址低字节00 段地址高字节80 { { 操作码 . . . . . . . . . 3 0 0 0 1 0 0 0 2 0 0 0 SS BP DI 3 3 0 0 0 33000H 82000H
83.28086指令系统 8086的指令系统大致可分为6种类型: ①数据传送指令 ②算术运算指令 ③逻辑运算和移位指令 ④串操作指令 ⑤程序控制指令 ⑥处理器控制指令
8086的指令系统大致可分为6种类型: ①数据传送指令 ②算术运算指令 ③逻辑运算和移位指令 ④串操作指令 ⑤程序控制指令 ⑥处理器控制指令 §3.2 8086指令系统
3.2.1数据传送指令 8086有5类传送指令,以实现CPU的内部寄存器之间 CPU和存储器之间、CPU和ⅣO端口之间的数据传送。 1.通用传送指令 通用传送指令中包括最基本的传送指令MOV,交换指令 XCHG,椎栈指令PUSH和POP,字节、字转换指令CBW和CWD。 (1)最基本的传送指令 指令格式: MOV OPRD,OPRD2 执行功能:该指令可把一个字节或一个字操作数从源地 址传送到目的地址中去 OPRD1:可以是累加器、寄存器、存贮器以及立即操作数 OPRD2:可以是累加器、寄存器和存贮器
3.2.1数据传送指令 8086有5类传送指令,以实现CPU的内部寄存器之间、 CPU和存储器之间、CPU和I/O端口之间的数据传送。 1.通用传送指令 通用传送指令中包括最基本的传送指令MOV,交换指令 XCHG,椎栈指令PUSH和POP,字节、字转换指令CBW和CWD。 (1)最基本的传送指令 指令格式:MOV OPRDl,OPRD2 执行功能:该指令可把一个字节或一个字操作数从源地 址传送到目的地址中去。 OPRD1:可以是累加器、寄存器、存贮器以及立即操作数 OPRD2:可以是累加器、寄存器和存贮器