公 (2)寄存器寻址( Register addressing) ·操作数在寄存器中,指令中指明寄存器号,这种 寻址方式叫寄存器寻址。 ·对于8位操作数,寄存器可以是AH,AL,BH,BL, CH CL DH DL 对于16位操作数,寄存器可以是AX,BX,CX,DX, Sl,D,SP,BP,CS,DSES,SS(但CS不能作目的 寄存器)
(2) 寄存器寻址(Register addressing) • 操作数在寄存器中,指令中指明寄存器号,这种 寻址方式叫寄存器寻址。 • 对于8位操作数,寄存器可以是 AH, AL,BH,BL, CH, CL, DH, DL . • 对于16位操作数,寄存器可以是AX, BX,CX, DX, SI, DI, SP ,BP,CS,DS,ES,SS (但CS 不能作目的 寄存器)
公 EXAMPLE INC AX MOV AX BX DEC AX ROL AH 1 将AH中的内容循环左移一位 CF D7 DO
• INC AX ; MOV AX, BX ; DEC AX ; ROL AH , 1 ; 将AH中的内容循环左移一位 CF D7 D0 EXAMPLE
公 练习 MOVAX,BX;正确。指令执行后,A以X←BX,但BX不变 MOVAX,BL;错误。源和目的的位数不相同 MO∨Cs,AX;错误。CS不能作为目的操作数 MOVES DS 错误。两个操作数不能都是段寄存器
练习: MOV AX , BX ;正确。指令执行后,AX←BX,但BX不变 MOV AX, BL ;错误。源和目的的位数不相同 MOV CS, AX ;错误。CS不能作为目的操作数 MOV ES, DS ;错误。两个操作数不能都是段寄存器
公 寄存器寻址的特点 1)操作数就在寄存器中,不需要访问存储器来取 得操作数(指令执行时,操作就在CPU的内部进 行),因而执行速度快。 2)寄存器号比内存地址短 *在编程中,如有可能,尽量使用这种寻址方式 的指令。 *寄存器寻址方式既可用于源操作数,也可用于 目的操作数,还可以两者都用于寄存器寻址方式 (如 MOV BX,AX)
寄存器寻址的特点 1 ) 操作数就在寄存器中, 不需要访问存储器来取 得操作数(指令执行时,操作就在CPU的内部进 行),因而执行速度快。 2 )寄存器号比内存地址短 * 在编程中,如有可能,尽量使用这种寻址方式 的指令。 * 寄存器寻址方式既可用于源操作数,也可用于 目的操作数,还可以两者都用于寄存器寻址方式 (如 MOV BX , AX )
公 (3)直接寻址( Direct Addressing) ·说明:在讨论寻址方式时,通常把操作数的偏移 地址称为有效地址EA( Effective address),EA 可通过不同的寻址方式来得到 在直接寻址方式中,指令中直接给出操作数的有 效地址,或者说,有效地址EA就在指令中。它 (操作数的有效地址,而不是操作数本身)存放在 代码段中指令的操作码之后,但操作数一般存放 在数据段中
(3) 直接寻址(Direct Addressing) • 说明:在讨论寻址方式时,通常把操作数的偏移 地址称为有效地址EA (Effective Address) ,EA 可通过不同的寻址方式来得到。 • 在直接寻址方式中,指令中直接给出操作数的有 效地址,或者说,有效地址EA就在指令中。它 (操作数的有效地址,而不是操作数本身)存放在 代码段中指令的操作码之后,但操作数一般存放 在数据段中