1、实验二 汇编程序基本指令
一、实验目的:
1、掌握操作数的存放位置和操作数的类型,加深对寄存器功能和访问内存过程的理解。
2、掌握各种寻址方式,进一步理解指令及操作数。
3、熟悉基本是数据传送指令的格式、功能及用法,验证其注意事项。
4、用DEBUG运行数据传送指令,分别应用不同的寻址方式,并察看运行结果。
二、实验仪器
计算机 、masm汇编程序
三、实验原理
1、立即寻址 MOV AX , 3069H
2、寄存器寻址 MOV AL , BH
3、直接寻址
2、 MOV AX , [ 2000H ]
4、寄存器间接寻址 MOV AX , [ BX ]
5、寄存器相对寻址 MOV AX , COUNT [ SI ]
6、基址变址寻址 MOV AX , [ BP ] [ DI ]
7、相对基址变址寻址 MOV AX , MASK [ BX ] [ SI ]
四、实验内容
1、用不同的寻址方式完成将S1为起始地址的30个字符依次传送到同数据段的以S2为起始地址的一片字节存储单元里。
(1)、源程序
可以参考zjxz.asm和jcqjj.asm和jcqxd.asm和jzbz
3、asm和xdjzbz.asm这几个文件,访问内存单元的时候分别用了直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。
DSEG SEGMENT
S1 DB ‘ABCDEFGHIJKLMNOPQRSTUVWXYZABCD’----------任意的30个字符都可以,但看结果的时候一定要和自己的程序对上。
S2 DB 30 DUP (?)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG
START:
MOV AX, DSEG
M
4、OV DS, AX
MOV AL,S1;直接寻址方式:
MOV S2,AL
MOV AL,S1+1;直接寻址方式:
MOV S2+1,AL
MOV AL,S1+2;直接寻址方式:
MOV S2+2,AL
……
MOV AX, 4C00H
INT 21H
CSEG ENDS
END START
寄存器间接寻址方式:
MOV SI,OFFSET S1
MOV DI,OFFSET S2
MOV CX,30
NEXT:MOV AL,[SI]
5、 MOV [DI],AL
INC SI
INC DI
LOOP NEXT
寄存器相对寻址方式:
MOV SI,0
MOV CX,30
NEXT:MOV AL,S1[SI]
MOV S2[SI],AL
INC SI
LOOP NEXT
基址加变址寻址方式:
MOV BX,OFFSET S1
MOV BP,OFFSET S2
MOV SI,0
MOV CX,30
NEXT:MOV AL, [BX+SI]
MO
6、V DS: [BP+SI],AL
INC SI
LOOP NEXT
相对的基址加变址寻址方式:
MOV [BX+SI+30],AL
(2)、汇编过程和连接过程
参考汇编运行步骤Word文件。
(3)在DEBUG调试环境下查看运行结果的过程。
直接寻址方式:
用同样的方式调试其它寻址方式编写的程序。
五、实验结论
1、为汇编程序运行结果。
2、用DEBUG 命令后显示的内容。
3、如何完成寻址的过程,用语言描述清楚。
六、实验讨论
1、在汇编过程中遇到的错误,及解决办法,从中学会的知识。
2、立即寻址和直接寻址的区别
3、寄存器寻址和寄存器间接寻址的区别。
4、与内存有关的寻址和其他寻址的区别。
七、 参考书目
《80x86汇编语言程序设计》 廖建明主编 清华大学出版社