熟悉汇编程序建立及其调试方法

本文由用户“8545886”分享发布 更新时间:2023-01-24 09:36:25 举报文档

以下为《熟悉汇编程序建立及其调试方法》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

熟悉汇编程序建立及其调试方法

一、实验目的

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字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《熟悉汇编程序建立及其调试方法》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览