实验三 数据传送
一、 实验目的
1.熟悉8086指令系统的数据传送指令及8086的寻址方式。 2.利用Emulator仿真器来调试汇编语言程序。 二、 实验预习要求
1.复习8086指令系统中的数据传送类指令和8086的寻址方式。 2.按照题目要求预先编写好实验中的程序段。 三、 实验任务
1.通过下述程序段的输入和执行来熟悉Emulator仿真器的使用,并通过显示器屏幕观察程序的执行情况。练习程序段如下:
MOV BL,08H MOV CL,BL MOV AX,03FFH MOV BX,AX
MOV DS:[0020H],BX 单步运行结果如图
2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。压栈程序段如下:
MOV AX,0102H MOV BX,0304H MOV CX,0506H MOV DX,0708H PUSH AX PUSH BX PUSH CX PUSH DX
结果如图
3. 指出下列指令的错误并加以改正,上机验证之。 (1) MOV [BX],[SI] 错误搭配,没有传送的目的寄存器 (2) MOV AH,BX 前后寄存器字节位数不符合 (3) MOV AX,[SI][DI] 两个变址寄存器不能连用
(4) MOV BYTE PTR[BX],2000H BYTE的字节为8位,WORD为16位,改
为WORD
(5) MOV CS,AX CX 不能连用AX
(6) MOV DS,2000H 立即数不能直接传送给段寄存器 4.① 编写程序设置各寄存器及存储单元为如下内容:
(BX)=0010H,(SI)=0001H
(10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H (10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH 解:程序如下:
MOV BX,0010H MOV SI,0001H MOV AX,1000H MOV DS,AX
MOV WORD PTR [BX],3412H MOV WORD PTR 0002[BX],7856H MOV WORD PTR 0110H[BX],0CDABH MOV BYTE PTR 0112H[BX],0EFH 实验结果如图
② 根据①中设置说明下列各条指令执行完后AX寄存器中的内容,并上机验证。
(1) MOV AX,1200H 1200 (2) MOV AX,BX 0010 (3) MOV AX,[0120H] CDAB (4) MOV AX,[BX] 3421
(5) MOV AX,0110H[BX] CDAB (6) MOV AX,[BX][SI] 5634 (7) MOV AX,0110H[BX][SI] EFCD
5. 将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。
解:程序如下
MOV [1000H],2233H 直接寻址 MOV AX,[1000H] MOV [2000H],AX
寄存器间接寻址 MOV SI,1000H MOV AX,[SI] MOV [2000H ],AX