以下为《熟悉汇编程序建立及其调试方法》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
熟悉汇编程序建立及其调试方法
一、实验目的
1.熟悉汇编语言源程序的框架结构,学会编制汇编程序。
2.熟悉汇编语言上机操作的过程,学会汇编程序调试方法。
二、实验内容
1.学习编写汇编语言源程序的方法,了解数据存放格式;
2.阅读给出的程序,找出程序中的错误,
3.通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。
三、实验预习
1.阅读实验指导第一章的内容,了解汇编语言程序建立、汇编、链接、调试的全过程。
2.下面的汇编语言源程序有错误的,试给程序加注释。通过调试手段找出程序中的错误并修改之。写出程序的功能,画出程序流程图。
STACKSG SEGMENT PARA STACK 'STACK' ;定义堆栈段
DB 256 DUP(?) ;定义256字区域,并不赋值
STACKSG ENDS ;堆栈段某某
DATASG SEGMENT PARA 'DATA' ;定义数据段
BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,39 ;定义变量BLOCK含有20个字的数据
DW 23,56,420,75,-67,-1024,650,512,-2000
COUNT EQU 20 ;定义COUNT=20
MAX DW ? ;定义MAX为自变量,并不赋值
DATASG ENDS ;数据段某某
CODESG SEGMENT ;定义代码段
ASSUME SS:STACKSG, CS:CODESG ;说明堆栈段代码段
ASSUME DS:DATASG ;说明数据段
ORG 100H ;定位偏移量为100H
BEGIN: MOV AX,DATASG
MOV DS,AX ;将DS指向DATASG
LEA SI,BLOCK ;将BLOCK地址给SI
MOV CX,COUNT ;将计数20赋值给CX
DEC CX ;CX自减1
MOV AX,[SI] ;将DS:SI的数值传给AX
CHKMAX: ADD SI,2 ;SI=SI+2
CMP [SI],AX ;比较AX和DS:SI中数值的大小
JLE NEXT ; MIN如果DS:SI小于A 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 SI,BLOCK 语句改为LEA SI,BLOCK+2*COUNT-2,并将ADD SI.2语句改为SUB SI.2,重新运行程序,观察运行结果;
/
8.若重新给出一组数据后运行程序,应如何操作;
/
9.若要求找出数据区中最小数,程序将如何修改,试上机调试。
把JGE NEXT改成 JLE NEXT即可
/
五、习题与思考
1. 在装入被调试程序后,如何知道分配给该用户程序的数据段在内存中的位置?
答:用r命令查看DS,ES值。
2.数据区中以什么形式存放有符号数的?
答:补码。
3.修改前、后的程序在执行时有何区别?
答:程序在修改前为按正序查找最大值,修改后为倒序查找最大值。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《熟悉汇编程序建立及其调试方法》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。