文档详情

《IBM-PC汇编语言程序设计31》.ppt

发布:2016-09-15约1.25万字共48页下载文档
文本预览下载声明
第3章 80x86的指令系统和寻址方式 * 4. 寄存器间接寻址方式* ——EA在基址寄存器(BX/BP) 或变址寄存器(SI/DI)中 BX, SI, DI ? (DS) 物理地址 = 16d ? (DS) + BP ? (SS) 物理地址 = 16d ? (SS) + (BP) MOV AX, [BX] PA = 16d ? (DS) + (BX) MOV AX, ES:[BX] PA = 16d ? (ES) + (BX) MOV AX, [BP] PA = 16d ? (SS) + (BP) (BX) (SI) (DI) 第3章 80x86的指令系统和寻址方式 * 4. 寄存器间接寻址方式* * 不允许使用AX、CX、DX存放EA ? MOV AX, [CX] * SRC 和 DST的字长一致 MOV DL, [BX] ; [BX]指示一个字节单元 MOV DX, [BX] ; [BX]指示一个字单元 * 适于数组、字符串、表格的处理 第3章 80x86的指令系统和寻址方式 * 5. 寄存器相对寻址方式(直接变址寻址)* 例: MOV AX, COUNT[SI] 或 MOV AX, [COUNT+SI] 假设(DS)=3000H, (SI)=2000H, COUNT=3000H 那么 PA = 35000H 假设(35000H)=1234H, 那么 (AX)=1234H * 适于数组、字符串、表格的处理 有效地址 = (BX) (BP) (SI) (DI) + 8位 16位 位移量 第3章 80x86的指令系统和寻址方式 * 6. 基址变址寻址方式* MOV AX, [BX][DI] 或 MOV AX, [BX+DI] MOV AX, ES:[BX][SI] * 适于数组、字符串、表格的处理 * 必须是一个基址寄存器和一个变址寄存器的组合 ? MOV AX, [BX][BP] ? MOV AX, [SI][DI] 有效地址 = (BX) (BP) + (SI) (DI) 第3章 80x86的指令系统和寻址方式 * 7. 相对基址变址寻址方式* MOV AX, MASK[BX][SI] 或 MOV AX, MASK[BX+SI] 或 MOV AX, [MASK+BX+SI] * 适于堆栈处理和二维数组处理 有效地址 = (BX) (BP) + (SI) (DI) + 8位 16位 位移量 第3章 80x86的指令系统和寻址方式 * 例:编写一段显示字符串STRING的程序 DATA SEGMENT STRING DB ‘HAPPY NEW YEAR!’, 0DH , 0AH , ‘$’ COUNT DW 17 DATA ENDS (1)直接寻址 mov dl, string ; mov dl, ‘H’ mov ah, 2 int 21h ; 显示字符‘
显示全部
相似文档