一、 实验目的
1. 熟练掌握8086/8088的各种寻址方式及应用。
2.掌握DEBUG调试程序中的一些常用命令的使用方法,为以后的实验打下基础。 二、实验仪器 586微机 一台 三、 实验内容及程序 1.关于数据的寻址方式练习
8086/8088 提供多种方式实现操作数寻址,大体可分为7种: a. 立即寻址
b. 寄存器寻址 c. 直接寻址
d. 寄存器间接寻址 e. 寄存器相对寻址 f. 基址变址寻址 g. 基址变址且相对寻址 建立以下汇编语言源程序:
STACK SEGMENT STACK
DB 0B0H, 0B1H, 0B2H, 0B3H, 0B4H, 0B5H, 0B6H, 0B7H, DB 0B8H, 0B9H
DB 0BAH, 0BBH, 0BCH, 0BDH, 0BEH, 0BFH DB 10H DUP(00) STACK ENDS DATA1 SEGMENT
DB 0A0H, 0A1H, 0A2H, 0A3H TABLE DW 0A5A4H
DB 0A6H, 0A7H, 0A8H, 0A9H, 0AAH, 0ABH
DB 0ACH, 0ADH, 0AEH, 0AFH DATA1 ENDS DATA2 SEGMENT
DB 0C0H, 0C1H, 0C2H, 0C3H, 0C4H, 0C5H, 0C6H, 0C7H DB 0C8H ,0C9H, 0CAH, 0CBH, 0CCH, 0CDH, 0CEH, 0CFH DATA2 ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA1, ES:DATA2, SS:STACK START:MOV AX, DATA1
MOV DS, AX MOV AX, DATA2 MOV ES, AX MOV BX, 0004H MOV CX, 0005H MOV BP, 0003H MOV SI, 0002H
MOV DI, 0001H
MOV AX, CX MOV AX, 500H MOV AX, TABLE MOV AX, ES:[BX]
MOV AX, [BX+05H] MOV AX, SS:[BX]+03H MOV AX, TABLE [BX] MOV AX, 07H [BX] MOV AX, [BP]
MOV AX, TABLE [BP] MOV AX, 08H [BP]
MOV AX, [BP+06H] MOV AX, DS:[BP+03H] MOV AX, [BP]+05H MOV AX, ES: [SI+03H] MOV AX, [DI+06H] MOV AX, [DI]+05H MOV AX, TABLE [SI] MOV AX, [SI]
MOV AX, TABLE [DI] MOV AX, [SI]+05H MOV AX, [BX] [DI+01H]
MOV AX, [BX] [SI]+03H MOV AX, TABLE [BX] [SI] MOV AX, ES:[BX] [DI] MOV AX, [BP] [DI+02H] MOV AX, TABLE [BP] [DI]
以下指令按后表要求完成 ;
MOV AX, ES:[BP] [SI] MOV AX, [BP] [SI+05H] MOV AX, 03H [BP] [DI] MOV AX, [BP] [SI]
MOV AX, [BP+02H] [DI+03H]
MOV AX, TABLE [BP+02H] [DI+03H] MOV AH, 4CH INT 21H CODE ENDS
END START
四、 实验数据及结果
指令
SRC寻址方式
SRC的地址 \\ \\
0772:0004H
AX推算值 AX实际值 0005 0500 A5A4 C5C4 AAA9 B8B7 A9A8 ACAB B4B3
0005 0500 A5A4 C5C4 AAA9 B8B7 A9A8 ACAB B4B3
MOV AX, CX 寄存器寻址 MOV AX, 500H MOV AX, TABLE
立即寻址 直接寻址
MOV AX, ES:[BX] 寄存器间接寻址 0773:0004H MOV AX, [BX+05H] MOV AX, SS:[BX]+03H MOV AX, TABLE [BX] MOV AX, 07H [BX] MOV AX, [BP]
寄存器相对寻址 0772:0009H 寄存器相对寻址 0770:0007H 寄存器相对寻址 0772:0008H 寄存器相对寻址 0772:000BH 寄存器相对寻址 0770:0003H