实验三 数据传送
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据传送
一、实验目的
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
变址寻址
MOV SI,0100H MOV BX,0F00H MOV AX,[SI][BX]
MOV [2000H],AX
寄存器相对寻址MOV BX,0F00H MOV AX,0100H[BX]
MOV DS:[2000H],AX
6. 设AX寄存器中的内容为1111H,BX寄存器中的内容为2222H,DS:1000H 单元中的内容为3333H。将AX寄存器中的内容与BX寄存器中的内容交换,然后再将BX寄存器中的内容与DS:1000H单元中的内容进行交换。试编写程序段,并上机验证结果。
解:程序如下
MOV AX,1111H
MOV BX,2222H
MOV [1000H],3333H
XCHG AX,BX
XCHG BX,[1000H]
7. 设(DS)=1000H ,(ES)=2000H ,有关存储器的内容如图1.5所示。要求将DS 段的内容传送到AX 寄存器,ES 段的内容传送到BX 寄存器,试编写程序段。
图1.5 第7题图
解:程序如下
MOV AX,1000H
MOV DS,AX
MOV DS:[1000H],0EEFFH
MOV AX,DS:[1000H]
MOV AX,2000H
MOV ES,AX
MOV ES:[2000H],0CCDDH
MOV BX,ES:[2000H]
四、实验总结
DS :1000H ES :2000H
在本次实验中,我接触到了8086指令系统的数据传送指令如MOV指令,PUSH 指令等及8086的寻址方式,知道了直接寻址,间接寻址,寄存器间接寻址,变址寻址,寄存器相对寻址等等,通过这些对于仿真器的使用,让我能够更加熟练的使用汇编语言,也和课堂上学到的知识相互贯通。