当前位置:文档之家› 实验一、汇编语言程序的上机过程及调试

实验一、汇编语言程序的上机过程及调试

实验一、汇编语言程序的上机过程及调试

汇编程序调试过程

实验一、汇编语言程序的上机过程及调试

汇编程序调试过程

一、实验目的熟练掌握汇编语言上机汇编、连接和装入运行。学会使用调试程序DEBUG或TD来进行程序调试。

汇编程序调试过程

二、实验内容(一)汇编程序建立过程a.建立汇编源程序─通过

b.编译为目标文件

d.连接为可执行文件

c.不通过,重新修改(语句错误)

f.不正确,用调试工具调试,重新修改(逻辑错误)

e运行正确

g.完成

汇编程序调试过程

汇编语言的源程序需要编译和连接后才能在计算机上执行。汇编语言源程序扩展名规定为.ASM。用MASM编译源程序后,将产生源程序的目标程序文件,其扩展名为.OBJ。再经过连接程序(LINK)把目标程序文件与库文件或其他目标文件连接在一起形成可执行文件(扩展名为.EXE)。这时就可以运行该程序了。DOS下可直接键入可执行程序的文件名从而运行该程序。

汇编程序调试过程

(二)过程详细说明步骤a: 建立汇编源程序如果现在的根目录不是E盘,写入E :然后回车,再打入cd *** (***是你新建的文件夹名),例如电气031班的同学,现在你的DOS界面根目录为:E\dq031 。打入edit然后回车,EDIT的操作画面便会出现在屏幕上,alt键可以控制工具栏操作,←↑→↓箭头控制阴影选择的上下移动。我们现

在按alt键,选中flie, 按↓选中open,回车,找到刚刚拷贝的asm 文件,回车。选择存盘并给你输入的文件起一个文件名,形式:*** . asm ;然后回到dos环境。

汇编程序调试过程

步骤b: 编译目标文件在DOS提示符下键入MASM *** .asm回车,(其中***为你刚才在*****RE a 中建立的文件名)这时汇编程序的输出文件可以有三个(分别:.obj .lst .crf),便会出现三次提问,在这可以一路回车即可。如果没有任何错误,系统会显示:0 Warning Error 0 Severe Error

汇编程序调试过程

步骤c: 编译不通过,重新修改在执行过*****RE b后,如有出错信息时,就要我们自己按*****RE c去做,在*****RE b中检测出的错误均为每一条语句的语法或用法错误,它并不能检测出程序的逻辑设计(错误,所以就要记好出错的行号。在记录行号后,就应再次执行*****RE a,这时操作应是打开已编好的源程序(以EDIT为例:在DOS提示符下键入:EDIT***.asm回车),依据行号进行修改并存盘,再次进行汇编,直至*****RE b通过为止。便可继续向下执行*****RE d。

汇编程序调试过程

步骤d: 连接为可执行文件(即:连接为.exe 或.com文件) 形式:在DOS提示符下:LINK ***. obj回车,连接程序的输出文件可以有三个(分别:. ***.exe .map .lib),便会出现三次提问,在这可以一路回车即可。

汇编程序调试过程

*****RE e: 运行编译好的可执行文件

当*****RE d通过后,会产生一个可执行文

件,这时只需运行这个程序,***.exe回车。本实验的结果是显示“my name is sf”

汇编程序调试过程

步骤f: 用调试工具调试DEBUG ***.exe 回车。其中*****E是主文件名,???是扩展文件名,例如我们在此前已编译好了一个文件,它的名字为:spoon.exe 要对它进行调试时就在DOS提示符下打:DEBUG spoon.exe 回车,便可见到'-' 提示符,如无任何提示说明正确,可进行调试

汇编程序调试过程

(三)在PC-DOS环境下运行的8086、8088源程序应具有如下的基本框架STACK STACK DATA DATA CODE ***** DW 10 DUP(?) ENDS ***** DB ? ENDS ***** ASSUME CS:CODE,DS:DATA,SS:STACK MOV AX,STACK MOV SS,AX PUSH DS MOV AX,00 PUSH AX MOV AX,DATA MOV DS,AX ┋ ENDS END

START:

CODE

汇编程序调试过程

DATA ***** STRING DB 'HELLO,WORLD$!' DATA ENDS CODE ***** ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA DX,STRING MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END START

汇编程序调试过程

二、实验总结1.程序的运行结果是什么?为什么?修改程序使运行结果显示你自己的名字。2.对实验中遇到的问题、如何解决、获得的收获等进行分析总结。

汇编程序调试过程

(三)TD调试程序的使用(TD学习寻址方式)

一、立即寻址例:MOV AX,1200H 二、寄存器寻址例:MOV AX,BX 三、直接寻址例:MOV AX,[1200H] 四、寄存器间接寻址例:MOV BX,1200H MOV AX,[BX]

汇编程序调试过程

五、寄存器相对寻址例:C MOV BX ,220H C MOV CL,[BX+5] C

六、基址、变址寻址C MOV SI,1100H C MOV BX,SI C MOV AX,[SI+BX]

七、基址、变址、相对寻址例:MOV DI,1100H MOV BP,DI MOV AL,[BP][DI]5

汇编实验指导书

实验一汇编语言程序的上机过程 一、实验目的 掌握汇编语言源程序的编辑、汇编、连接及运行过程,为以后的实验打下基础。 二、实验内容 1、输入下列完整的程序 STACK SEGMENT STACK DB 200 DUP(?) STACK ENDS DATA SEGMENT BUF DB‘HOW ARE YOU!$’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX LEA DX,BUF MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START (本程序的正确运行结果是在屏幕显示“HOW ARE YOU!”) 2、完成课本P193习题5.1。 三、实验步骤 (1)利用EDIT编辑源程序; (2)汇编源程序; (3)连接目标程序文件; (4)运行可执行文件。 四、实验报告要求 写出以上两个实验内容的题目、源码、具体实验步骤和实验结果。 1.在屏幕上打印字符串”How are you?”。 (1)源代码: ;打印字符串"How are you?" STACK SEGMENT STACK DB 200 DUP(?) STACK ENDS DATA SEGMENT BUF DB 'How are you?$' DATA ENDS

CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK START: MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX ;在屏幕上打印字符串 LEA DX, BUF MOV AH, 9H INT 21H MOV AH, 4CH INT 21H CODE ENDS END START (2)具体实验步骤: 编辑→保存→masm→link→运行 (3)结果截图: 2.编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 (1)源代码: (2)具体实验步骤: (3)结果截图: 实验二 DEBUG的使用技术 一、实验目的

实验一 熟悉汇编程序调试步骤

实验一汇编语言环境 一、实验目的 1.熟悉汇编语言的上机环境,学习EDIT,MASM,LINK程序的使用,掌握建立、汇编、链接、运行汇编语言程序的过程。 2.熟悉DEBUG有关命令的使用方法。 二、实验原理 建立、汇编、链接、运行汇编语言程序的过程方法。 三、主要仪器及耗材 计算机、MASM软件包。 四、实验内容与步骤 内容: 1.输入、编辑汇编语言程序。 2.对汇编语言程序进行汇编、连接和运行。 步骤: 1.在DOS提示符下,进入MASM目录。 2. 在MASM目录下启动EDIT编辑程序,输入源程序,并对其进行汇编、连接和运行。 1) 调用edit输入、编辑源程序并保存在指定的目录中;例:edit no1.asm,进入编辑窗口 code segment assume cs:code start: mov ah,08h int 21h mov ah,4ch int 21h code ends end start 编辑完后,何在退出edit窗口 2) 用汇编程序masm对源程序汇编产生目标文件obj。例: masm no1 不断修改错误,直至汇编通过为止,产生no1.obj。 3) 用连接程序link产生执行文件exe.例:link no1 4) 执行程序:可直接从DOS执行程序,即在DOS环境中,输入文件名no1即可。 再次熟悉汇编连接,运行过程。 1.在DOS提示符下,进入MASM目录。 2. 在MASM目录下启动EDIT编辑程序,输入源程序,并对其进行

汇编、连接和运行。 1) 调用edit输入、编辑源程序并保存在指定的目录中;例:edit no2.asm,进入编辑窗口 DATAS SEGMENT buf db 'I am a student!$' ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT db 200 dup(0);此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX lea dx,buf mov ah,9 int 21h ;此处输入代码段代码 MOV AH,4CH INT 21H CODES ENDS END START编辑完后,何在退出edit窗口 2) 用汇编程序masm对源程序汇编产生目标文件obj。例: masm no2 不断修改错误,直至汇编通过为止,产生no2.obj。 3) 用连接程序link产生执行文件exe.例:link no2 4) 执行程序 可直接从DOS执行程序,即在DOS环境中,输入文件名no2即可。

汇编语言上机过程

汇编语言上机过程: 一、上机前的软件准备: MS-DOS操作系统(如:MSDOS6.22 , MSDOS7.0 等) 文本编辑器(如:https://www.doczj.com/doc/0a19508837.html, , TURBO.EXE , TC.EXE , C.EXE 等) 汇编程序(如:MASM.EXE , ASM.EXE 等) 连接程序(如:LINK.EXE 等) 调试程序(如:DEBUG.EXE 等) 二、汇编程序建立过程: 三、现在对(二)的每一个标有字母的过程(PROCEDURE)进行详细说明 PROCEDURE a:建立汇编源程序(即:建立文件名.asm) 这个过程就相当于我们在纸上编写源程序代码一样,只不过是将纸变为了计算机,这个过程也称源代码录入。将源程序代码录入计算机的方法很多,下面将介绍具体方法。 1.通过MD-DOS自带的EDIT.EXE文本编辑器进行输入,在DOS提示符下键入:EDIT回车,这时如果你系统内可调用时,EDIT的操作画面便会出现在屏幕上,你就可在提示下进行录入了,当录入完毕后,选择存盘并给你输入的文件起一个文件名,形式:filename.asm ;(其中filename 为你起的文件名,由1-8个字符组成),asm 是为汇编程序识别而必须加上去的,不可更改。存盘后在DOS下可用DOS命令DIR来查看,如果看到了所存的文件存在,就可以进行进程b。 2.如果你的系统中没有EDIT,也可用你所熟悉的文本编辑器进行录入、编辑,如可用C语言和pascal语言的文本编辑器来编辑,最后将文件存为filename.asm的形式即可。 PROCEDURE b:编译目标文件(即:编译为.obj .lst .crf文件) 这个过程计算机将把你编的正确的源代码编译为机器语言、程序清单及交叉引用表的目标文件。如果此时你的程序有语句错误,系统将报错,并指出在第几行,什么类型的错误,你可根据提示去逐一修改。现介绍具体过程: 在DOS提示符下键入MASM filename回车 (注:你系统内的汇编程序为MASM.EXE,如果你系统的汇编程序为ASM.EXE时,便将命令变为ASM filename回车。其中filename为你刚才在PROCEDURE a 中建立的文件名) 这时汇编程序的输出文件可以有三个(分别:.obj .lst .crf),便会出现三次提问,在这可以一路回车即可。下面显示的信息是源程序中的错误个数,如果为0则表示顺利通过,就可进行进程c。但如果不为0就说明有错误,并指出错误出现的行,可依据这个提示去进行修改。但如果错误太多还未等看清就显示过去了,可用如下命令形将错误信息存于一个你指定的文件,再用文本编辑器去查看。 MASM filename >filen (filen为你起的一个没用过的文件名,用以存放出错信息)以后可查看filen来得到出错信息。

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法 汇编语言是一种底层的程序设计语言,直接操作计算机硬件。在编写 汇编语言程序时,需要经过一系列的编程步骤和调试方法,以确保程序的 正确性和可靠性。下面是关于汇编语言的编程步骤和调试方法的一些详细 介绍。 一、编程步骤: 1.定义程序目标:明确程序的功能、输入和输出。 2.设计算法和逻辑:将目标转化为汇编语言指令,设计算法和逻辑流程。 3.选择寄存器和指令:根据算法和逻辑需求,选择合适的寄存器和指令。 4.编写指令:根据算法和逻辑需求,使用正确的指令来编写汇编语言 程序。 5.汇编编译:使用汇编编译器将汇编代码翻译成机器代码。 6.汇编连接:使用链接程序将机器代码和其他必要的文件(如库文件)连接成可执行文件。 7.调试和测试:进行调试和测试,确保程序的正确性和可靠性。 8.优化和改进:根据测试结果,对程序进行优化和改进。 二、调试方法: 1.插入调试指令:在程序中插入一些特定的调试指令,可以输出一些 关键的变量或标志位,以便观察程序的执行路径和结果。

2.单步执行:逐条执行程序代码,并观察每条指令的执行结果和影响,以及寄存器和存储器的变化情况。 3.观察寄存器和存储器:利用调试器观察程序执行过程中的寄存器和 存储器的变化情况,以确定代码逻辑是否正确。 4.打印和日志输出:通过在程序中插入打印和日志输出的语句,可以 观察关键变量和代码的执行情况,以帮助调试。 5.内存和寄存器状态检查:检查程序执行过程中的内存和寄存器状态,特别是对一些关键变量和标志位进行监视,以便发现问题所在。 6.脱机调试:将程序转储至仿真器或虚拟机,并在其中进行无风险的 调试,以排查错误。 三、汇编程序调试常见问题及解决方法: 1.程序崩溃或死循环:检查程序中循环和分支语句的逻辑判断条件是 否正确,以及循环内的寄存器和内存操作是否正确。 2.内存访问错误:查看程序访问的内存地址和存储器的范围是否正确,并检查程序中的指针操作是否正确。 3.寄存器使用错误:检查程序中使用的寄存器是否正确选择和使用, 尤其是在多个函数调用的情况下,需要注意寄存器的保存和恢复。 4.数据错误:检查程序中对数据处理的算法和逻辑是否正确,尤其是 涉及到数据类型转换和数据移位的操作。 5.输入和输出问题:检查程序中输入和输出的读写操作是否正确,以 及相关的数据类型和格式是否匹配。

汇编语言上机操作及程序调试的方法

汇编语言上机操作及程序调试的方法第一节在IBM-PC机上运行汇编源程序所必备的软件 为了在IBM-PC机上运行汇编源程序,机器上必须有DOS操作系统环境,DOS系统盘上应有下列文件: EDIT 文件编辑程序 MASM 宏汇编程序 CREF 交叉引用文件处理程序 LINK 链接程序 LIB 库管理程序 DEBUG 调试程序 第二节在IBM-PC机上运行汇编源程序的步骤 当用户编制好汇编语言源程序之后,要在机器上运行,必须经过以下几个步骤: 1.用EDIT命令建立与修改汇编源程序文件(ASM文件) 源程序就是用汇编语言的语句编写的程序,它不能被机器识别。源程序必须以ASM为附加文件名。至于EDIT的使用方法可以查阅手册。 2.用MASM命令汇编源文件以产生相应的目标文件(OBJ文件)源程序建立以后,必须经过汇编,转换成用二进制代码表示的目标文件,机器才可运行。汇编是通过调用PC—DOS下的宏汇编程序MASM实现的。汇编过程中,汇编程序对源文件进行二次扫描,如果源程序中有语法错误,则汇编过程结束后,汇编程序会指出源程序中的错误,这时,用户可以再用编辑程序来修改源程序中的错误,最后,得到没有语法错误的OBJ文件。 3.用LINK命令连接目标文件以产生可执行文件(EXE文件)由于汇编之后所得到的目标代码的存放地址并不是可执行的绝对地址,而是浮动的相对地址,因而,必须经过连接,把程序的各个模块连接在一起,或把要调用的子程序与主程序连接在一起,把相对地址变成绝对地址,形成可执行的文件。连接是由调用PC—DOS下的LINK程序来实现的。 4.调试、运行可执行文件。 经过以上过程,在盘上有了可执行文件,则可在DOS提示符下,直接打入文件名(不用扩展名),就可以把执行文件从盘上装入内存,且立即执行此程序。

汇编语言上机步骤与DEBUG常用命令的使用

、实验一汇编语言上机步骤与DEBUG常用命令的使用 【实验目的】 (1)汇编语言源程序的编辑、汇编、连接的方法 (2)掌握DEBUG常用命令的使用,如汇编命令A、反汇编命令U,查看寄存器命令R,查看内存单元命令D,修改内存单元命令E,填充内存单元命令F,设断点热行命令G及单步执行命令T等; (3)掌握用断点执行或单步执行来检查和调式程序的方法; (4)进一步了解8086/8088CPU内部寄存器的功能; (5)掌握访问段式存储器结构地址的表示方法 【实验类型】验证型实验 【实验内容及要求】 1、编辑源程序:将课本102页的代码输入到计算机,并保存(源程序可以不用写到实验报告上) 2、对源程序进行汇编,生成目标文件,写出相应的命令 3、对目标文件进行连接,生成可执行文件,写出相应的命令 4、用DEBUG程序调试生成的可执行文件:按以下要求完成 ⑴用反汇编U命令显示程序及目标码,把结果写在实验报告上。 ⑵用R命令查看各寄存器的情况,把结果写在实验报告上。 ⑶写出第四条指令的逻辑地址,段地址及偏移地址。 ⑷用单步命令T或断点命令G执行程序到RET处,并写出用T命令执行头5条指令的过程及G命令的执行过程。 ⑸写出用D命令检查程序执行前后x,y,z的内容。 ⑹用E命令修改数据段中某一存储单元的内容。 DEBUG常用命令 分类命令格式功能说明 汇编与反汇编-A[地址] 从指定地址开始汇编程序地址默认值为: CS:IP -U[地址] 从指定地址开始反汇编32字节目标码 -U 起始地址 终止地址 在指定地址范围内反汇编目标码 运行与跟踪-G=起始地 址][断点1…断 点10] 在指定地址开始执行到断点为止地址默认值为: CS:IP -T[=地址] 在指定地址执行一条指令后暂停 -T[=地址]n 在指定地址执行n条指令后暂停 存储单元读写移动比较与搜索-D[地址] 从指定地址开始显示80H字节存储单元 内容 地址默认值为: CS:IP -D起始地址终 止地址 显示指定地址范围内存储单元内容 -E地址修改内 容 从指定地址开始逐个单元修改存储内 容 -S起始地址终止地址被 查字符串 从指定地址范围内查找字 符串 段地址默认值 为DS

汇编语言程序的上机过程

汇编语言的上机过程 汇编语言程序的上机过程包括编辑、汇编、连接和执行这四个步骤。汇编程序我们提供宏汇编程序MASM5.0和MASM6.14两个版本。 1、建立源程序文件 建立和编辑汇编语言源程序可以使用EDIT、记事本、写字本,也可以使用TC等来输入源程序。保存时,源程序文件的扩展名必须是ASM。 练习: (1)在DOS下用编辑软件EDIT建立如下源程序文件,将文件保存为Hello.ASM,保存在MASM5目录下。(调用命令“C:\EDIT”进入EDIT 编辑器。) 源程序文件如下: DSEG SEGMENT MESSAGE DB 'HOW DO YOU DO?',0DH,0AH,24H DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG BEGIN: MOV AX,DSEG MOV DS,AX MOV DX,OFFSET MESSAGE MOV AH,9 INT 21H

MOV AH,4CH INT 21H CSEG ENDS END BEGIN (2)编程计算1+2+3+ ……+100,和放在AX寄存器中,要求用循环实现。 对于MASM5.0和MASM6.14两个版本,编译和连接的方法有所不同。以下分别就两个版本的编译和连接的方法进行讲解。 如果使用MASM5.0的话,操作方法如下(以HELLO.ASM源程序文件为例):2、对源程序进行汇编,生成目标文件HELLO.OBJ。 操作: (1)在DOS下进入MASM5.0的目录,如C:\MASM5> (2)敲入命令: MASM HELLO 说明: .obj文件:目标代码文件,纯二进制代码文件,不能直接显示在屏幕上。 .lst文件:包含源程序中各语句及其对应的目标代码,各语句的偏移量等相关信息,对调试程序有帮助,但一般情况不需要。 .crf文件:交叉索引文件,给出源程序中定义的符号引用情况,初学时不需建立。 3、连接目标文件,生成执行文件HELLO.EXE, 操作:敲入命令LINK HELLO 说明: .EXE文件:可执行文件 .MAP文件:连接映象文件,包括各个段在存储器中的分配情况,初学时不需要。

汇编语言上机实验报告1

汇编语言上机实验报告1 汇编语言上机实验报告1 实验内容: 1.编写一个程序,求解给定整数的阶乘并输出结果。 2.编写一个程序,求解斐波那契数列中的第n个数并输出结果。 实验步骤: 1.阶乘程序: 编写一个汇编程序,通过输入一个整数n,求解n的阶乘。程序流程如下: 1.1.定义变量n,用于保存输入的整数。 1.2.将n与0进行比较,如果n为0,则直接将1输出作为阶乘的结果,并跳转到程序结束;否则继续执行下一步。 1.3.将n的值保存到寄存器中,并将n减1,保存到n中。 1.4.将n与0进行比较,如果n为0,则直接跳转到程序结束;否则继续执行下一步。 1.5.将n的值与寄存器中保存的值相乘,将结果保存到寄存器中。 1.6.将n减1,保存到n中并跳转到第4步。 1.7.输出寄存器中的结果作为阶乘的结果,并跳转到程序结束。 2.斐波那契数列程序:

编写一个汇编程序,通过输入一个整数n,求解斐波那契数列中的第n个数。程序流程如下: 2.1.定义变量n,用于保存输入的整数。 2.2.将n与0进行比较,如果n为0,则直接将0作为结果输出,并跳转到程序结束;否则继续执行下一步。 2.3.将n与1进行比较,如果n为1,则直接将1作为结果输出,并跳转到程序结束;否则继续执行下一步。 2.4.将n的值保存到寄存器中,并将n减1,保存到n中。 2.5.将n与0进行比较,如果n为0,则跳转到第9步;否则继续执行下一步。 2.6.将n减1,保存到n中并跳转到第7步。 2.7.将n的值与寄存器中保存的值相加,将结果保存到寄存器中。 2.8.将n减1,保存到n中并跳转到第5步。 2.9.输出寄存器中的结果作为斐波那契数列中第n个数的结果,并跳转到程序结束。 实验结果: 1.阶乘程序运行结果: 请输入一个整数:5 5的阶乘为:120 2.斐波那契数列程序运行结果:

实验一-8086汇编语言上机调试及基本操作.

实验一:8086汇编语言上机调试及基本操作 (验证性) 1、实验目的: (1)掌握常用DEBUG命令: G,D,R,T,U,Q。 (2)掌握工具软件EMU8086。 (3)掌握完整程序设计方法的格式,能正确书写数据段,代码段等。 (4)掌握简单的数值转换算法 2、实验说明: 计算机中的数值有各种表达方式,这是计算机的基础。掌握各种数制之间的转换是一种基本功。 3、程序框图:对于0-999(即000H-3E7H)范围内的二进制数 4、参考程序: ; 将AX中的三位数拆为三个BCD码, 并存入Result 开始的三个单元 DATA SEGMENT; 数据段 RESULT_1 DB 1 RESULT_2 DB 1 RESULT_3 DB 1 DATA ENDS STACK SEGMENT STACK ; 堆栈段 STA DB 64 DUP(0) STACK_TOP DB 0 STACK ENDS CODE SEGMENT; 代码段

ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACK START: MOV AX, DATA MOV DS, AX ; 设置数据段 MOV AX, STACK MOV SS, AX ; 设置堆栈段 LEA SP, STACK_TOP ; 设置栈顶指针 MOV AX, 2afH MOV CL, 100 DIV CL MOV RESULT_1, AL ; 除以100, 得百位数 MOV AL, AH MOV AH, 0 MOV CL, 10 DIV CL MOV RESULT_2, AL ; 余数除以10, 得十位数 MOV RESULT_3, AH ; 余数为个位数 MOV AX,4C00H ; 返回DOS INT 21H ; CODE ENDS END START ; 最后一行要按回车键 5、实验及报告要求: 1)用合适的编辑软件编辑以上源文件并存入合适目录;要求补充注释未注释的 伪指令和指令; 2)分别在DOS和Windows下编译、连接生成可执行文件,比较两个环 境下生成的机器码的长度和内容;试指出第2、5、7、10、14条指令的IP和机器码。 3)分别在debug和emu8086下调试该可执行文件,给出程序运行时的各段 地址(CS=?,DS=?SS=?ES=?)举例说明debug的t,d,g,u等命令操作方法并对寄存器的变化作出解释;试改变被转换的三位数,并解释转换过程中标志寄存器中各标志位的结果;如何观察转换结果的变化?4)写出完整的实验报告,特别是“实验结果”与“实验总结体会”部分,是评分的 主要依据。 5)实验总结中要求结合实验中的经验、教训或体会对汇编语言格式、调试方法 和微机原理学习方法作出总结。 6、思考题: 1)用单步执行命令t运行程序,运行到mov ax, 4c00h,int 21h指令后,cs和 IP寄存器内容前后有何变化?产生变化的原因是什么? 2)试写出将BCD转换成二进制码的汇编程序。

微机原理汇编语言的上机过程 实验报告

微机原理技术与接口实验报告 学院: 专业: 班级: 姓名: 学号:

汇编语言程序的上机过程 实验目的 通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。 实验原理及操作步骤 一、上机环境 要运行调试汇编语言程序,至少需要以下程序文件: ?编辑程序:https://www.doczj.com/doc/0a19508837.html,或其他文本编辑工具软件,用于编辑源程序。 ?汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。 ?连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。 ?调试程序:DEBUG.EXE,用于调试可执行程序。 二、上机过程 汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。 1.编辑源程序 用文本编辑软件创建、编辑汇编源程序。常用编辑工具有:https://www.doczj.com/doc/0a19508837.html,、记事本、Word等。 无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。 2.汇编 用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。 汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。 汇编过程如下: 在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。 此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列 表文件)和.CRF(交叉引用文件)。 Object Filename [MYFILE.OBJ]: Source Listing [Nul.LST]: Cross Reference [Nul.CRF]: 依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。如果汇 编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。

汇编语言程序设计的实验环境及上机步骤

汇编语言程序设计的实验环境及上机步骤 一、实验环境 汇编语言程序设计的实验环境如下: 1.硬件环境 微型计算机(Intel x86系列CPU)一台 2.软件环境 ⏹Windows98/2000/XP操作系统 ⏹任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等) ⏹汇编程序(MASM.EXE或TASM.EXE) ⏹连接程序(LINK.EXE或TLINK.EXE) ⏹调试程序(DEBUG.EXE或TD.EXE) 文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。 二、上机实验步骤 注:以下步骤适用于除汇编语言程序设计的实验一到实验四外的所有实验(实验一到实验四仅使用TD.EXE)。 1.确定源程序的存放目录 建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。如果没有创建过此目录,请用如下方法创建: 通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。 请把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。 2.建立ASM源程序 建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。 在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“https://www.doczj.com/doc/0a19508837.html, C:\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口,如图1所示。

微机实验:汇编语言程序的调试与运行步骤.doc

软件实验一汇编语言程序的调试与运行 一.实验目的 1.学习数据传送和算术运算指令的用法 2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。 二.实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DA TA2为首的5个内存单元中,结果送回DATA1处。 三.程序框图 图1.1 两个多位十进制相加程序流程图 四.程序清单 DISP MACRO X MOV DL,X ;要显示的字符送DL寄存器 MOV AH,02H ;DOS功能调用号是02H INT 21H ;21H中断程序是DOS功能调用 ENDM DATA SEGMENT DATA1 DB '12732' DATA2 DB '06815'

N EQU $-DA TA2 DATA ENDS STACK SEGMENT STACK STA DB 20 DUP (?) TOP EQU $-STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DA TA START:MOV AX,DA TA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX LEA SI,DATA1 ;☆ MOV BX,0 MOV CX,N CALL DISPL ;显示被加数 DISP '+' LEA SI,DATA2 MOV BX,0 MOV CX,N CALL DISPL ;显示加数 DISP '=' LEA DI,DA TA1 MOV CX,N CALL ADDA ;调用加法子程序 LEA SI,DATA1 MOV BX,0 MOV CX,N CALL DISPL ;显示运算结果 DISP 0DH DISP 0AH MOV AX,4C00H INT 21H DISPL PROC ;显示子程序 DS1: MOV AH,02H MOV DL,[SI+BX] INT 21H INC BX LOOP DS1

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法汇编语言作为一种低级编程语言,具有高度的灵活性和效率,尤其适用于对计算机底层操作进行精确控制的应用。本文将介绍汇编语言的编程步骤与调试方法。 一、编程步骤 1. 设计算法:编程之前,首先需要明确编写代码的目的和功能。根据需求,设计出合适的算法,确定程序的输入、输出等基本要素。 2. 选择汇编语言指令集:根据计算机的硬件平台和操作系统,选择合适的汇编语言指令集,如x86、ARM等。 3. 编写代码:根据算法,使用汇编语言指令集编写代码。汇编语言使用助记符来表示指令和操作数,需要了解指令的语法和使用方法。 4. 组织程序结构:在编写代码时,需要按照一定的结构组织程序,包括定义数据段、代码段等,并进行正确的程序控制流程设计。 5. 完善程序功能:根据需求,完善程序的各项功能。可以包括输入输出处理、数据操作、逻辑判断、循环处理等。 6. 调试和优化:编写完成后,进行程序的调试和优化。可以通过调试工具、打印输出等方式,定位和解决程序中的错误和问题。同时,优化程序的性能,提高代码的执行效率。 7. 文档记录:在编写代码的过程中,逐步记录代码的功能、变量定义、重要的注释等信息,便于他人阅读和维护。

二、调试方法 1. 单步调试:单步调试是指逐条执行汇编语言程序,观察每条指令 的执行情况。通过单步调试可以查看寄存器的值、内存的状态等信息,以便定位错误。 2. 设置断点:在需要观察或调试的代码行上设置断点,运行程序时 会在断点处停止执行,可以查看此时程序的状态,并逐步分析代码的 执行流程。 3. 查看寄存器和内存:在调试过程中,可以查看寄存器和内存中的值,以判断程序是否按照预期的方式处理数据。通过查看寄存器和内 存的值,可以分析代码的执行过程和结果。 4. 打印输出:可以通过在程序中插入打印输出语句,输出关键变量 的值,以便观察程序的执行过程和数据的变化。 5. 利用调试工具:使用专业的调试工具可以更加方便地进行汇编语 言程序的调试。调试工具提供了更强大的功能,如设置断点、查看寄 存器和内存、调试时的动态变量查看等。 6. 错误定位和修复:在调试过程中,根据观察到的错误信息和程序 状态,确定错误的来源和原因,并对代码进行修复。修复后,再次进 行调试,直至程序达到预期的功能。 三、总结 汇编语言的编程步骤包括算法设计、选择指令集、编写代码、组织 程序结构、完善功能、调试和优化、文档记录等。调试方法包括单步

汇编语言程序设计上机步骤与调试方法

汇编语言程序设计上机步骤与调试方法 在汇编语言程序设计中,上机步骤与调试方法是非常重要的,它们 能够帮助程序员更好地编写和调试程序。本文将介绍汇编语言程序设 计的上机步骤以及常用的调试方法,帮助读者更好地理解和应用这些 知识。 一、上机步骤 1. 准备工作 在开始上机之前,我们需要做一些准备工作。首先,确认计算机已 经连接好必要的硬件设备,例如键盘、显示器等。其次,确保操作系 统和开发环境已经正确安装并能够正常运行。最后,根据需要准备好 所需的汇编语言文档和程序样例。 2. 创建新项目 在开始编写汇编语言程序之前,我们需要创建一个新的项目。在项 目中,我们可以组织和管理相关的文件和代码。通常,我们会选择一 个合适的集成开发环境(IDE)来创建和管理项目。 3. 编写程序 在创建项目之后,我们可以开始编写汇编语言程序。首先,我们需 要了解目标机器的指令集和寄存器,以便正确地编写程序。然后,根 据需求,我们可以使用不同的指令、寄存器和内存来实现所需的功能。在编写程序的过程中,注意代码的可读性和易于维护性是非常重要的。

4. 调试程序 编写完汇编语言程序后,我们需要进行调试,以确保程序的正确性 和稳定性。调试是一个迭代过程,通常包括以下步骤: - 设置断点:在程序中设置断点,以便在特定位置停止程序的执行。 - 单步执行:通过逐条执行程序的指令,我们可以观察程序的执行 过程,并检查各寄存器和内存的值。 - 监视变量:在调试过程中,我们可以监视程序中的变量值,以验 证其正确性。 - 查看输出:观察程序的输出结果,与预期结果进行比较,以确定 程序是否按照预期执行。 - 修复错误:如果发现程序中存在错误,我们需要对程序进行修改 和调整,直到问题解决为止。 5. 运行程序 在完成程序的调试之后,我们可以运行程序并观察其运行效果。在 运行过程中,我们可以测试程序的各种功能,以确保其正常工作。 二、调试方法 1. 打印输出 在调试汇编语言程序时,打印输出是一种常用且简单有效的调试方法。在程序中插入打印语句,将一些变量的值打印到控制台或文件中,

汇编语言上机过程以及调试

一、预习内容 1. 工具软件MASM、LINK的使用 2. 常用DEBUG命令的使用: G,D,R,T,U,Q 3. 完整程序设计方法的格式。 二、目的要求 1. 掌握常用工具软件MASM、LINK的使用 2. 掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序 3. 掌握完整程序设计方法的格式,能正确书写数据段,代码段等。 三、实验内容 比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。 DSEG SEGMENT string1 db 'Move the cursor backward.' string2 db 'Move the cursor backward.' mess1 db 'Match.',13,10,'$' mess2 db 'No match.',13,10,'$'

DSEG ENDS CSEG SEGMENT assume cs:CSEG, ds:DSEG, es:DSEG, MAIN PROC FAR start: mov ax, dseg mov ds, ax mov es, ax lea si ,string1 ① cld ② repz cmpsb jz match lea dx,mess2 jmp short disp match: lea dx,mess1 disp: mov ah,09h

int 21h mov ax, 4c00h int 21h MAIN ENDP CSEG ENDS end start 实验步骤: 1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在c:\masm615下,注意保存时将文件扩展名改为.asm(如lab1.asm)。 2)打开桌面的“命令提示符”程序进入dos命令操作,先用cd masm615 命令改变路经,接着用”masm + 文件名”(如 masm lab1,这里文件名可以不带扩展名) 对源文件进行汇编,产生.obj文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。 3)用”link + 文件名” (如 link lab1) 将.obj文件连接成可执行的.exe文件(lab1.exe)。

汇编语言程序设计实验报告

实验报告 实验名称汇编语言程序设计 | | 专业班级:信息安全 学号: 姓名: 实验一汇编语言上机过程和Debug常用调试命令 一.实验目的: 学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和 运行程序的方法。 二.实验题目: 熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。在调试过程中,学习及掌握debug程序的各种操作命令。 三.问题描述: 试编写一程序:比较两个字符串string1和string2所含的字符是否相同, 若相同则显示‘match’; 否则,显示‘no match’。

四.方法说明: a) 使用ws、tc或EDIT编辑程序来建立源文件,然后存盘,使系统返回DOS。 b) 用汇编程序masm(或asm)对源文件汇编产生目标文件obj 如:汇编指示出错则需重新调用编辑程序修改错误,直至汇编通过为止。 c) 用连接程序link 产生执行文件EXE. d) 执行程序,可直接从DOS执行程序。 e) 使用debug程序调试程序的方法。 五.实验步骤: 1.调用字处理程序EDIT 建立以sample.asm文件 datarea segment string1 db ‘move the cursor backward.’ string2 db ‘move the cursor backward.’ mess1 db ‘Match..’,13,10,’$’ mess2 db ‘No match!..’,13,10,’$’ datarea ends prognam segment

main proc far assume cs:prognam,ds:datarea,es:datarea start: push ds sub ax,ax push ax mov ax,datarea mov ds,ax mov es,ax lea si,string1 lea di,string2 cld mov cx,25 repz cmpsb jz match lea dx,mess2 jmp short disp

单片机实验报告KeilC的使用与汇编语言上机操作

单片机实验报告KeilC的使用与汇编 语言上机操作 单片机实验报告:Keil C的使用与汇编语言上机操作 一、实验目的 1.掌握Keil C的使用方法,了解其集成开发环境下的单片机编程流程。 2.掌握汇编语言的基本语法和指令,通过上机操作熟悉其应用。 3.通过实际操作,增强动手能力和解决问题的能力。 二、实验设备 1.单片机开发板 2.Keil C软件 3.电脑及编程器 三、实验原理及步骤 1.Keil C使用介绍 Keil C是一款广泛使用的单片机集成开发环境,它提供了包括编译器、调试器、仿真器等在内的全套开发工具。使用Keil C可以方便地进行代码编写、编译、调试和模拟,适用于多种单片机开发。 2.汇编语言基础 汇编语言是一种直接与硬件相关的编程语言,它通过特定的指令集直接控制硬件进行操作。汇编语言具有高效、直接的特点,但编写和理解相对困难。本实验主要学习并熟悉汇编语言的基本语法和指令。 3.实验步骤 (1) 在Keil C中创建新项目,选择合适的单片机型号。 (2) 创建源文件,编写汇编程序。 (3) 对源文件进行编译,生成目标文件。

(4) 将目标文件下载到单片机开发板进行调试和运行。 四、实验内容及分析 1.在Keil C中创建新项目并选择单片机型号。在创建项目时,需要选择正确 的单片机型号,这将直接影响到程序的编写和运行。根据实际需要,我们选择了AT89C51作为实验用的单片机。 2.创建源文件并编写汇编程序。在Keil C中,可以方便地创建新的源文件, 并在其中编写汇编程序。例如,下面是一个简单的汇编程序,用于点亮开发板上的LED灯: MOV P1, #1 // 将1赋值给P1端口 此程序将使P1端口的所有引脚输出高电平,从而点亮LED灯。 3.对源文件进行编译并生成目标文件。在Keil C中,可以通过简单的点击完 成编译操作。编译成功后,将生成一个目标文件(如*.obj文件)。 4.将目标文件下载到单片机开发板进行调试和运行。在Keil C中,可以通过 仿真功能模拟程序的运行,也可以通过调试功能查看程序运行过程中的细节信息。如果程序运行无误,将在单片机开发板上看到预期的结果。 五、实验总结与体会 通过本次实验,我们深入了解了Keil C的使用方法和单片机编程的基本流程。同时,通过实际操作,我们熟悉了汇编语言的应用和编程技巧。虽然汇编语言相对于高级语言更为复杂,但在特定场合下(如对性能要求极高或与硬件直接交互时),其高效性和直接性具有不可替代的优势。因此,掌握汇编语言对于单片机开发具有重要的意义。在未来的学习和实践中,我们将进一步运用和发展所学的知识和技能,为科学研究和工程实践做出贡献。

汇编语言上机指导

汇编语言上机指导 一、概述 汇编语言是一种低级别的程序设计语言,它直接使用计算机的指令集架构来编写程序。而在进行汇编语言的实际操作时,上机指导是必不可少的一环。本文将为您提供一份汇编语言上机指导,以帮助您在实践中更好地掌握汇编语言的应用。 二、实验环境与所需工具 在进行汇编语言的上机实验之前,您需要准备以下工具和环境: 1. 计算机:一台能够运行汇编语言开发环境的计算机; 2. 汇编语言开发环境:例如MASM、NASM等; 3. 文本编辑器:用于编写汇编源代码的工具,例如Notepad++、Sublime Text等; 4. 模拟器或调试器:用于模拟或调试汇编程序的工具,例如DOSBox、Emu8086等。 三、实验步骤 1. 安装汇编语言开发环境:根据您选择的汇编语言开发环境,下载并安装相应的软件。 2. 创建汇编源代码文件:使用文本编辑器创建一个新的文本文件,并将其保存为.asm文件格式。

3. 编写汇编程序:根据实验要求或题目要求,使用汇编语言编写相应的程序代码。在编写过程中,需要熟悉所选汇编语言的语法和指令集。 4. 保存源代码文件:在编写完成后,保存源代码文件,并注意文件的命名规范和格式要求。 5. 编译源代码:打开所选汇编语言开发环境,并将源代码文件导入到该环境中。使用编译器将源代码文件转换为可执行文件。 6. 运行汇编程序:在模拟器或调试器中加载生成的可执行文件,并运行程序。通过观察程序的运行结果,验证程序代码的正确性和准确性。 7. 调试程序:如果程序在执行过程中出现错误或异常,可以使用调试器来逐步调试程序,找出错误的原因,并进行修正。 8. 优化程序:经过测试和调试后,可以根据实验需求对程序进行优化或改进,提高程序的性能和效率。 9. 文档整理:在上机实验结束后,对实验过程、实验结果和实验心得进行文档整理。将实验相关的代码、截图和注释整理成文档,并附上你的实验心得和体会。 四、注意事项 1. 在编写汇编程序时,需要遵循所使用汇编语言的语法和规范,注意标识符的命名规则和字符集的使用限制。

NO.1:汇编语言的上机过程(基于MASM_6.15)

1) 了解并熟悉汇编源程序的编写环境,了解汇编源程序的汇编链接运行 2) 写出一个简单的汇编程序并运行 3) 编写程序,从键盘接收两个十进制数,将它们的和存入变量sum (上机第一步)EDIT,是编辑程序,像一个文本编辑器,用来编辑汇编语言源程序,编辑好的程序扩展名为*.asm; (第二步)MASM,是汇编程序,用来把*.asm程序编译成二进制代码,该二进制代码文件称为目标程序,扩展名为*.obj; (第三步)LINK,是链接程序,用来把*.obj文件变成可执行目标代码,即可执行文件*.exe; 在第二步和第三步中,可以发现程序语法上的错误; (第四步)DEBUG是调试工具,用于发现程序逻辑上的错误。 汇编语言的上机过程(基于MASM 6.15) 汇编语言的一般上机过程:1.建立ASM文件 2.产生OBJ文件 3.产生EXE 文件4.程序的调试和执行 MASM 6.15包含文件: *************************************************** M ASM.EXE 汇编器 E https://www.doczj.com/doc/0a19508837.html, DOS下的文本编辑器 E DIT.HLP EDIT帮助文件 L IB.EXE 过程库管理程序 L INK.EXE 连接器

D OSXNT.EXE m l.err 汇编的错误信息文件 m l.exe(masm and link)汇编连接器 *************************************************** D EBUG.EX E 调试器(一般是系统自带) *************************************************** 对于MASM 6.10以下的版本,汇编器和连接器是分开的,分别是MASM.EXE 和LINK.EXE,使用时要先用MASM.EXE生成.OBJ文件,再使用LINK.EXE生成.EXE 文件。ml.exe把MASM.EXE和LINK.EXE整合到一起,可以一步生成.EXE 文件。 ml命令有许多参数,可以使用ml /?命令查看。下面介绍几个低级实用的参数: /AT Enable tiny model (.COM file) /c Assemble without linking 只汇编不连接 /Fe Name executable 指定.EXE文件名 /Fl[file] Generate listing 生成列表文件(.LST) /Fm[file] Generate map 生成映像文件(.MAP) /Fo Name object file 指定.OBJ文件名 /I Add include path 指定include文件的路径名 两种开发环境: 1.32位Windows控制台(CMD.EXE)

相关主题
文本预览
相关文档 最新文档