东 北 大 学
计算机硬件技术基础实验报告
专业班级:姓名:学号:实验题目:顺序程序设计日期:年 月 日
一、实验目的
(1) 掌握顺序程序设计方法;
(2) 学习数据传送及算术和逻辑运算指令的用法;
(3) 熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。
二、实验内容
设X和Y均为8位无符号数,写一个求表达式Z=X+Y值的程序。
三、算法描述流程图
四、实验步骤
1. 输入源程序:
DSEG SEGMENT
X DB 12H
Y DB 34H
Z DB 0
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV AL,X
ADD AL,Y
MOV Z,AL
MOV AH,4CH
INT 21H
CSEG ENDS
END START
2. 保存源文件,执行masm汇编源程序,生成obj目标文件,结果无错误。
3. 执行link连接程序,生成exe可执行文件,结果无错误。
4. 执行debug调试程序,使用t参数单步执行程序,在AL寄存器中得到计算结果46H,结果正确,执行d参数命令察看Z所在的地址单元中的数据为0002字节单元中存放46H。
五、实验结果
程序运行结果
执行masm汇编获得obj文件,为1.obj
执行link连接程序,获得exe文件,为1.exe
执行debug,第一行可以看出,AX为1446H,则AL计算结果为46H,执行-d 0002查看Z所在地址单元的数据为0002字节单元中存放的确实为46H
六、思考题
本程序没有考虑进位的情况。如果考虑可能产生的进位,应该如何修改程序?
答:把程序的ADD改为ADC
七、扩展题
设X和Y均为三字节无符号数,编制程序求其和,并将结果放置在Z开始的存储单元。
程序为
DSEG SEGMENT
X DB 12H,34H,56H
Y DB 34H,56H,78H
Z DB 3 DUP(0)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV SI,OFFSET X
MOV DI,OFFSET Y
MOV BX,OFFSET Z
CLC
MOV CX,3
NEXT:
MOV AL,[SI]
ADD AL,[DI]
MOV [BX],AX
INC SI
INC DI
INC BX
LOOP NEXT
MOV AH,4CH
INT 21H
CSEG ENDS
END START
八、实验心得
加深了对汇编语言的了解,自己动手编写汇编程序的能力有些提高。感觉实际动手实践比看书更有用,可以加深印象,更容易记住与了解各个指令及其作用
Writing material: three hundred philosophical storiesThe three hundred chapter of philosophical story1, a turkey and a cow idle gossip, Turkey said: I want to fly to the top of the tree, but I have no courage to say. Cattle: why I do not eat the cow dung, they are very nutritious. Turkey eat a cow dung, and found it did give it e