微机原理实验报告
实验二 熟悉汇编程序建立及其调试方式
姓名: 吕迪 冉晨越
学号: 13024219 13024221
一、 实验目的
1. 熟悉汇编语言源程序的框架结构,学会编制汇编程序。
2. 熟悉汇编语言上机操作的过程,学会汇编程序调试方法。
二、 实验内容
1、 学习编写汇编语言源程序的方法,了解数据存放格式。
2、 阅读给出的程序,找出程序中的错误。
3、 通过调试给出的汇编语言源程序,了解汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。
三、 实验程序
(一)、源程序
STACKSG: SEGMENT PARA STACK 'STACK' ;冒号
DB 256 DUP(?)
STACKSG ENDS
DATASG: SEGMENT PARA 'DATA' ;冒号
BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512
DW 23,56,420,75,0,-1024,-67,39,-2000
COUNT EQU 20
MAX DW ?
CODESG: SEGMENT ;冒号
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
ORG 100H
BEGIN: MOV DS, DATASG ;应为 MOV AX,DATASG MOV DS,AX
LEA SI,BLOCK
MOV CX,COUNT
DEC CX
MOV AX,[SI]
CHKMAX ADD SI,2 ;应加冒号
CMP [SI],AX
JLE NEXT
MOV AX,[SI]
DEC CX ;删除
NEXT: LOOP CHKMAX
MOV MAX,AX
MOV AH,4CH
INT 21H
CODESG ENDS
END BEGIN
(二)、修改后程序
STACKSG SEGMENT PARA STACK 'STACK'
DB 256 DUP(?)
STACKSG ENDS ;定义堆栈段
DATASG SEGMENT PARA 'DATA' ;定义数据段
BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 ;BLOCK有20个字
DW 23,56,420,75,0,-1024,-67,39,-2000
COUNT EQU 20 ;COUNT=20
MAX DW ? ;定义MAX不赋值
DATASG ENDS
CODESG SEGMENT ;定义代码段
ASSUME SS:STACKSG , CS:CODESG ;定义STACKG为堆栈段 CODESG为代码段
ASSUME DS:DATASG ;定义DATASG为数据段
ORG 100H ;偏移量100H
BEGIN: MOV AX, DATASG ;DATASG传入DS
MOV DS, AX
LEA SI ,BLOCK ;取BLOCK的有效地址给SI
MOV CX, COUNT ;COUNT传入CX
DEC CX ;CX=CX-1
MOV AX , [SI] ;把DS:[SI]内容传入AX
CHKMAX : ADD SI, 2 :SI=SI+2
CMP [SI] , AX ; 比较DS:[SI]与AX值的大小
JLE NEXT ;当DS:[SI]<=AX时跳转到NEXT
MOV AX , [SI] ;否则将DS:[SI]装入AX
NEXT: LOOP CHKMAX ;CX=CX-1,CX为零循环CHMAX,否则顺序运行
MOV MAX ,AX ;将AX内容装入MAX
MOV AH, 4CH ;结束
INT 21H ;退出
CODESG ENDS
END BEGIN
(三)程序功能
比较20个数的大小,找出最大的数字。
(四)流程图
Y
N
N
Y
四、实验步骤
1、建立汇编语言源程序,编译、链接、建立成可执行文件
2、运行DEBUG调试程序,装入别调试程序,用U命令查看调入的程序
3、用R命令查看当前寄存器内容
4、用D命令查看并记录下内存中数据存放格式
5、用T命令但不运行程序,观察各条指令执行结果,以及对寄存器,标志位,内存单元的影响,若找出程序中的错误,用Q命令退出DEBUG环境,修改汇编语言源程序,重复上述步骤,直至整个程序无误。
6、若将LEA SI,BLOCK语句改为LEA SI,BLOCK+2*COUNT-2, 并将ADD SI,2改为SUB SI,2,,重新运行程序观察结果:
7、若重新给出一组数据,可用E命令输入新数据后运行程序,观察并记录运行结果。
8、若要求找出数据区中最小数,程序将如何修改,试上机调试。
将JLE NEXT改为JGE NEXT
内存数据存放格式:
本文档为【实验报告 实验二 熟悉汇编程序建立及其调试方式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。