实验四、五.汇编语言程序设计

loading 分享 2026-8-22 下载文档

16~17春《微机原理》课程实验报告

姓名: 学号: 成绩:

实验四、五.汇编语言程序设计

一、简述对汇编语言程序的理解。

汇编语言程序的设计需要综合地运用汇编语言知识,在编写过程中不仅需要我们对汇编语言掌握熟练,还要求我们充分考虑各部分之间的联系,灵活地编写并优化程序。

汇编语言的设计一般分为以下几个步骤: 1、 分析问题,抽象出描述问题的数据模型 2、 确定问题的算法思想 3、 画出流程图或结构图

4、 分配存储器和工作单元(寄存器) 5、 逐条编写程序 6、 静态检查,上机调试

二、按照实验指导书的“实验基本要求”以及“实验内容”的要求,描述相关实验内容的完成情况。

实验四:

1. 建立下列程序的可执行文件,并回答问题。 DATAS SEGMENT

STRING DB 'Hello World!',13,10,'$' DATAS ENDS CODES SEGMENT

ASSUME CS:CODES, DS:DATAS START:MOV AX, DATAS MOV DS, AX LEA DX, STRING

MOV AH, 9 INT 21H MOV AH, 4CH INT 21H CODES ENDS END START

1) 在DEBUG中,如何观察数据段中的数据存储情况?数据存储的段地址和偏移地址如何察看?

答:输入-D,执行结果如下:

每行十个数据,最前面显示的地址是每行第一个数据的地址信息,且冒号(“:”)之前的四位是段地址,之后四位是偏移地址,每行第一个数据每往右边一个数据,段地址不变,偏移地址加一。

2) 在DEBUG中,如何查看机器码所对应的源程序?代码的段地址和偏移地址如何确定?

答:输入-U,执行结果如下图:

代码的短地址和偏移地址的确定同上题1)。

3) 运行上述程序的命令行是:G=0000,程序的运行结果是“Hello World!”。

4) 代码段中的LEA DX, STRING语句,翻译成机器指令后再反汇编,得到什么语句? 为什么?

由上题2)中的运行结果可知会得到以下语句: LEA DX,[0000]

因为STRING的偏移地址是0000H

5) 如果代码段中有一条MOV BL, STRING语句,翻译成机器指令后再反汇编,得到什么语句?

同理可知会得到一下语句: MOV BL, [0000] 2.从实验1的2-4三个参考程序中,任选一个改编成完整源程序,建立其可执行文 件并运行。(注意:需要定义标号,作为控制转移类指令中的操作数;直接寻址的存储器操作数,应通过变量表示)

选择程序2,则完整源程序如下:. STACK SEGMENT STACK DB 100 DUP(?) TOP LABEL WORD STACK ENDS DATA SEGMENT DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV SP, OFFSET TOP

MOV BL,0 PUSH BX DATA1:MOV DL,20H MOV AH,02H POP BX MOV AL,BL INC AL CMP AL,1BH JNZ DATA2 MOV AL,01H DATA2:MOV BL,AL PUSH BX ADD AL,40H MOV AH,02H INT 21H

MOV CX,0FFFFH DATA3:DEC CX JNZ DATA3 JMP DATA1 CODE ENDS END START

运行后,连续显示A,B,C,D······Z大写英文字符


实验四、五.汇编语言程序设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 实验四、五.汇编语言程序设计 的文档
相关推荐
相关阅读