汇编语言调试及运行
实验一、汇编语言程序的上机过程及调试
实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>一、实验目的熟练掌握汇编语言上机汇编、连接和装入运行。
学会使用调试程序DEBUG或TD来进行程序调试。
<i>汇编程序调试过程</i>二、实验内容(一)汇编程序建立过程a.建立汇编源程序─通过b.编译为目标文件d.连接为可执行文件c.不通过,重新修改(语句错误)f.不正确,用调试工具调试,重新修改(逻辑错误)e运行正确g.完成<i>汇编程序调试过程</i>汇编语言的源程序需要编译和连接后才能在计算机上执行。
汇编语言源程序扩展名规定为.ASM。
用MASM编译源程序后,将产生源程序的目标程序文件,其扩展名为.OBJ。
再经过连接程序(LINK)把目标程序文件与库文件或其他目标文件连接在一起形成可执行文件(扩展名为.EXE)。
这时就可以运行该程序了。
DOS下可直接键入可执行程序的文件名从而运行该程序。
<i>汇编程序调试过程</i>(二)过程详细说明步骤a: 建立汇编源程序如果现在的根目录不是E盘,写入E :然后回车,再打入cd *** (***是你新建的文件夹名),例如电气031班的同学,现在你的DOS界面根目录为:E\dq031 。
打入edit然后回车,EDIT的操作画面便会出现在屏幕上,alt键可以控制工具栏操作,←↑→↓箭头控制阴影选择的上下移动。
我们现在按alt键,选中flie, 按↓选中open,回车,找到刚刚拷贝的asm 文件,回车。
选择存盘并给你输入的文件起一个文件名,形式:*** . asm ;然后回到dos环境。
<i>汇编程序调试过程</i>步骤b: 编译目标文件在DOS提示符下键入MASM *** .asm回车,(其中***为你刚才在*****RE a 中建立的文件名)这时汇编程序的输出文件可以有三个(分别:.obj .lst .crf),便会出现三次提问,在这可以一路回车即可。
80868088汇编语言上机调试与实验指导
2、DEBUG的常用命令
1)显示、修改寄存器命令 R
格式:R[寄存器名]
功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000
8)指定文件命令 N
格式:N<文件名或扩展名>
功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在L命令和W命令之前。
9)装入命令 L
格式1:L[起始地址][盘符号][扇区号][扇区数]
1、编辑软件
行编辑软件:
全屏编辑软件:WPS、、、WORD、PE等。
当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。
2、汇编程序
有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。
Microsoft(R) Macro assemble Version 5.00
Copyright(C) Microsoft Corp 1981-1985,1987 ALL rights reserved
Run file [<file>.EXE]:
List File [nul.map]:
4)汇编命令 A
格式:A[起始地址]
功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省起始地址,则从当前CS:100地址开始存放。A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。
gdb调试汇编语言
gdb调试汇编语言
GDB是一个功能强大的调试器,可以用来调试汇编语言程序。
在使用GDB调试汇编语言程序时,你需要首先确保程序已经被编译成可执行文件,并且包含了调试信息。
接下来,你可以通过以下步骤使用GDB来调试汇编语言程序:
1. 启动GDB,在命令行中输入`gdb`命令,然后在GDB提示符下输入可执行文件的名称。
2. 设置断点,你可以使用`break`命令在程序中设置断点,以便在特定的位置停止程序的执行。
例如,你可以输入`break main`来在程序的主函数处设置断点。
3. 运行程序,输入`run`命令来运行程序,程序会在设置的断点处停止执行。
4. 单步执行,使用`stepi`命令来逐条执行汇编指令,这样你可以逐步跟踪程序的执行过程。
5. 查看寄存器和内存,使用`info registers`命令可以查看寄
存器的值,而使用`x`命令可以查看内存中特定地址的内容。
6. 检查堆栈,使用`backtrace`命令可以查看当前的函数调用堆栈,而使用`frame`命令可以切换到不同的堆栈帧。
7. 观察变量,使用`print`命令可以查看特定变量的值,这对于检查程序状态非常有用。
8. 继续执行,当你想让程序继续执行时,可以使用`continue`命令来让程序一直执行到下一个断点或者程序结束。
以上是使用GDB调试汇编语言程序的基本步骤,当然,在实际调试过程中可能会有更复杂的情况需要处理,但是掌握了这些基本操作之后,你就可以更有效地使用GDB来调试汇编语言程序了。
希望这些信息对你有所帮助。
汇编语言的编程步骤与调试方法
汇编语言的编程步骤与调试方法汇编语言是一种底层的程序设计语言,直接操作计算机硬件。
在编写汇编语言程序时,需要经过一系列的编程步骤和调试方法,以确保程序的正确性和可靠性。
下面是关于汇编语言的编程步骤和调试方法的一些详细介绍。
一、编程步骤:1.定义程序目标:明确程序的功能、输入和输出。
2.设计算法和逻辑:将目标转化为汇编语言指令,设计算法和逻辑流程。
3.选择寄存器和指令:根据算法和逻辑需求,选择合适的寄存器和指令。
4.编写指令:根据算法和逻辑需求,使用正确的指令来编写汇编语言程序。
5.汇编编译:使用汇编编译器将汇编代码翻译成机器代码。
6.汇编连接:使用链接程序将机器代码和其他必要的文件(如库文件)连接成可执行文件。
7.调试和测试:进行调试和测试,确保程序的正确性和可靠性。
8.优化和改进:根据测试结果,对程序进行优化和改进。
二、调试方法:1.插入调试指令:在程序中插入一些特定的调试指令,可以输出一些关键的变量或标志位,以便观察程序的执行路径和结果。
2.单步执行:逐条执行程序代码,并观察每条指令的执行结果和影响,以及寄存器和存储器的变化情况。
3.观察寄存器和存储器:利用调试器观察程序执行过程中的寄存器和存储器的变化情况,以确定代码逻辑是否正确。
4.打印和日志输出:通过在程序中插入打印和日志输出的语句,可以观察关键变量和代码的执行情况,以帮助调试。
5.内存和寄存器状态检查:检查程序执行过程中的内存和寄存器状态,特别是对一些关键变量和标志位进行监视,以便发现问题所在。
6.脱机调试:将程序转储至仿真器或虚拟机,并在其中进行无风险的调试,以排查错误。
三、汇编程序调试常见问题及解决方法:1.程序崩溃或死循环:检查程序中循环和分支语句的逻辑判断条件是否正确,以及循环内的寄存器和内存操作是否正确。
2.内存访问错误:查看程序访问的内存地址和存储器的范围是否正确,并检查程序中的指针操作是否正确。
3.寄存器使用错误:检查程序中使用的寄存器是否正确选择和使用,尤其是在多个函数调用的情况下,需要注意寄存器的保存和恢复。
汇编语言源程序运行步骤和DEBUG的使用
汇编语言源程序运行步骤和DEBUG的使用一、实验目的1.熟悉汇编语言源程序书写格式。
2.熟悉汇编语言源程序编辑、汇编、连接、执行步骤。
3.练习DEBUG常用命令的使用。
4.熟悉8086的寄存器。
5.了解程序的执行过程。
二、实验预习要求1、认真阅读预备知识中汇编语言的上机步骤的说明,熟悉汇编程序的建立、汇编、连接、执行、调试的全过程。
2.预习使用DEBUG 检查/修改寄存器内容、查询存储器内容的命令。
3.预习使用DEBUG单步、断点及连续执行程序的命令。
三、实验内容1.编辑以下程序,汇编连接后运行,将输出'HOW ARE YOU?’。
本习题主要目的:熟悉汇编语言源程序的书写格式;熟悉汇编语言源程序的编辑、汇编、连接、运行。
DA TA SEGMENTBUF DB 'HOW ARE YOU?$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV DX,OFFSET BUFMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2.DEBUG 调试以下程序,查看DATA段中定义的数据在内存中的存放方式,并单步执行查看每一语句执行后相关寄存器的内容,并解释为何取该值:DA TA SEGMENT ;(1)DB 34H,12H ;(2)B DW 1234H ;(3)C DD 0 ;(4)D DB -1,15/3 ;(5)E DB '012' ;(6)F DW 'AB','C' ;(7)G DW ? ;(8)H DB 5 DUP(0) ;(9)I DW $-OFFSET H ;(10)DA TA ENDS ;(11)CODE SEGMENT ;(12)ASSUME CS:CODE,DS:DA TA ;(13)START: MOV AX,CODE ;(14)MOV DS,AX ;(15)MOV BX,SEG A ;(16)MOV CX,OFFSET B ;(17)MOV DX,TYPE C ;(18)MOV AH,4CH ;(19)INT 21H ;(20)CODE ENDS ;(21)END START ;(22)3.下面是第1题采用将主程序定义为远程的程序返回DOS的结束方式,将其编辑、连接、运行,熟悉汇编源程序不同的结束方式。
实验一 利用 DEBUG 调试汇编语言程序段
实验名称实验一利用 DEBUG 调试汇编语言程序段一、实验目的1.熟悉 DEBUG 有关命令的使用方法;2.利用 DEBUG 掌握有关指令的功能;3.利用 DEBUG 运行简单的程序段。
二、实验要求1.仔细阅读有关 DEBUG 命令的内容,对有关命令,要求事先准备好使用的例子;三、实验环境DOS 操作系统四、实验内容1.进入和退出 DEBUG 程序;1)开始—运行点确定进入DOS命令窗口图1进入DOS命令窗口2)在命令窗口中输入 dubug 进入 debug 程序图2进入 debug 程序3)进入 debug 窗口后,输入 q 命令退出 debug图3退出 debug2.学会 DEBUG 中的1)D 命令(显示内存数据 D 段地址:偏移地址)例 1:-D100 ;显示 DS 段, 0100 开始的 128 个字节内容-D ;默认段寄存器为 DS,当前偏移地址(刚进入 debug 程序偏移地址为 0100H)图4默认显示 DS 段内容-D DS:100 ;显示 DS 段, 0100H 开始的 128 个字节内容图5显示 DS 段内容-D CS:200 ;显示 CS 段, 0200H 开始的 128 个字节内容图6显示 CS 段内容-D 200:100 ;显示 DS 段, 0200:0100H 开始的 128 个字节内容图7显示 DS段0200:0100H内容-D 200 ;显示 DS 段, 0200H开始的128个字节内容图8显示 DS段0200H开始的内容-D 100 L 10 ;显示 DS 段, 100H 开始的 100H 个字节内容图9显示 DS段100H开始的100H字节内容2)E 命令(修改指定内存)例 1:-E100 41 42 43 44 48 47 46 45-D 100,L08结果:073F:0100 41 42 43 44 48 47 46 45-e 100 修改内存内容-d 100,L08 查看刚才修改的内存内容图10 修改和查看DS段100H开始的80H字节内容例 2: -E 100073F:0100 41. 42 : 42 是操作员键入此命令是将原 100 号内存内容 41 修改为 42,用 D 命令可察看。
汇编语言的编程步骤与调试方法
汇编语言得编程步骤与调试方法一、汇编源程序得建立1、使用工具sm文件;(2)ASM,MASM汇编程序,对源程序进行汇编,生成、obj文件-目标文件,以及调试用、LST-列表文件与、CRF-交叉引用表;(3)Link连接程序,对使用得目标文件与库文件进行连接,生成、exe文件,同时调试用、map-地址映像文件;如果源程序无语法错误,上述三步将生成可运行得、exe文件,如果运行结果无误,则完成对汇编程序得编程,如果运行后结果存在错误,需要进行调试。
(4)Debug调试程序,对、exe文件进行调试,修改,直到程序正确。
图3目标程序生成步骤图2、编程过程(1)用文本编辑软件,编写扩展名为、asm得源文程序文件。
(2)用汇编程序对编好得源文件进行汇编。
命令行:masm[*、asm]↙如果源文件中存在语法错误,则汇编程序将指出错误类型及位置,可根据这些信息重新编辑源文件,直至无语法错误,汇编后,将生成指定名称得目标文件、obj。
使用MASM50汇编程序进行汇编,输入命令行masm或者masm *、asm 后,根据提示,输入文件名,在汇编没有错误得情况下,如屏幕所示:汇编程序可生成三个文件,*、obj,*、lst与*、crf。
*、obj-目标文件,用于连接生成可执行文件;*、lst-列表文件(可选),汇编语言汇编得机器语言与汇编语言对照表,可用于调试;*、crf-交叉引用文件(可选),给出了用户定义得所有符号与对每个符号定义、引用得行号。
(3)目标文件得连接命令行:link[*、obj][*、obj] [*、lib] ↙连接程序,将多个目标程序及库文件,连接生成可执行得*、exe文件,同时可选择生成*、map文件。
*、map-地址映像文件,给出内存地址分配得有关信息。
下图所示屏幕,为Link连接两个目标文件,没有错误得情况下,生成*、e xe文件。
(4)执行程序执行*、exe文件,观察程序运行结果,如果存在错误,需要进行调试。
dos汇编debug基本命令程序
dos汇编debug基本命令程序DOS汇编(Debug)基本命令程序在学习和编写DOS汇编语言程序时,了解和掌握调试程序是非常重要的。
DOS提供了一个非常有用的调试器,即Debug。
Debug是一个基本的汇编语言调试程序,它可以让程序员在运行程序时进行单步执行,查看寄存器和内存的内容,以及进行程序的调试和错误修复。
本文将介绍DOS汇编(Debug)基本命令程序。
一、启动Debug要启动Debug,可以在DOS命令提示符下输入"debug"命令,然后按Enter键。
此时,会显示Debug的提示符"-",表示Debug 已经启动。
二、基本命令Debug提供了一系列命令,用于执行和调试汇编语言程序。
下面是一些常用的基本命令:1. a(assemble):将汇编指令翻译成机器码,并将其写入内存中。
例如,输入"a 100"表示从内存地址100开始输入汇编指令。
2. d(dump):显示内存中的内容。
可以使用"d"命令来查看内存中的指令和数据。
例如,输入"d 100"表示从内存地址100开始显示内存内容。
3. e(enter):修改内存中的指令或数据。
可以使用"e"命令来修改内存中的指令或数据。
例如,输入"e 100"表示修改内存地址100处的内容。
4. g(go):执行程序。
使用"g"命令可以让程序开始执行。
例如,输入"g"表示开始执行程序。
5. r(register):显示和修改寄存器的内容。
可以使用"r"命令来查看和修改寄存器的内容。
例如,输入"r ax"表示显示或修改AX寄存器的内容。
6. t(trace):单步执行程序。
使用"t"命令可以让程序以单步执行的方式运行。
keil调试 汇编语言
keil调试汇编语言Keil是一款广泛用于嵌入式系统开发的集成开发环境(IDE),它支持多种编程语言,包括C语言和汇编语言。
在Keil中进行汇编语言的调试需要编写汇编代码以及在IDE中配置相关设置,接下来我将详细介绍如何在Keil中调试汇编语言。
首先,要在Keil中调试汇编语言,我们需要创建一个新的Keil 项目或者打开一个已有的项目。
在创建新项目或打开项目后,我们可以在项目中添加一个汇编文件,用于编写我们的汇编代码。
在Keil中,汇编文件的后缀通常为.asm,我们可以通过右键点击项目中的文件夹,选择添加→新建文件(或者通过快捷键Ctrl+N)来创建一个新的汇编文件。
创建好汇编文件后,我们可以在文件中编写我们的汇编代码。
在编写汇编代码时,我们需要注意汇编语言的语法和指令格式。
汇编语言的语法因不同的体系结构而异,比如x86汇编语言与ARM汇编语言的语法就有所不同。
因此,在编写汇编代码前,我们需要先了解目标平台的体系结构和相应的汇编语法标准。
在汇编代码中,我们可以使用一系列的汇编指令来进行数据的移动、运算和控制流的操作。
例如,通过MOV指令可以实现数据的移动,通过ADD指令可以实现数据的加法运算,通过CMP指令可以实现数据的比较等。
汇编指令的具体使用方法和参数取决于具体的体系结构和处理器指令集。
编写完汇编代码后,我们需要在Keil中配置一些相关设置,以便能够进行调试。
首先,我们需要在项目属性中设置汇编语言的编译器和链接器选项。
在Keil的项目目录视图中,右键点击项目名称,选择选项,并在弹出的对话框中选择正确的编译器和链接器。
其次,我们需要在Keil的启动文件(startup file)中设置相应的中断向量表和启动代码。
启动文件位于项目文件夹的"startup"子文件夹中,可以通过将文件拖放到Keil编辑器中打开。
在启动文件中,我们需要找到中断向量表和启动代码的位置,并将其修改为适用于我们的汇编代码的中断向量表和启动代码。
8086汇编语言上机调试步骤.
8086汇编语言上机调试步骤1、在网络课堂-微机原理与接口技术-实验指导-汇编工具下载,下载汇编工具并解压,文件夹名为“masm”。
2、用鼠标点击“masm”文件夹。
进入该文件夹后将看到 MASM.EXE,LINK.EXE , DEBUG.EXE3个文件进行复制操作。
3、用鼠标点击“我的电脑”再点击D: 盘,并在 D: 盘上建立新的“ MASM”文件夹,最后将上面的3个文件全部复制到该文件夹中。
(注意实验所有的文件都放在该文件夹内4、用文本编辑软件UltraEdit-32、WINDOWS 中的记事本或其它的文本编辑器输入汇编语言程序, 注意在最后一行的 END输入完后要按一次回车键,保存的源文件的扩展各一定要是“.asm”如: example.asm 。
(建议用记事本输入源程序,另存时,保持类型选择“所有文件”如图所示5、进入MS-DOS方式 ( 从开始>程序>附件>命令提示符或者(从程序 > 运行输入“cmd”回车,进入MS-DOS环境。
6、进入D:>MASM文件夹7、显示MASM文件夹内所有文件“dir”命令8、在 DOS 提示符下进行汇编、连接、动态调试等操作。
例如: 对源文件 example.asm 进行的操作D:\MASM\MASM example.asm;汇编源程序操作D:\MASM\LINK example.dbj;连接并生成扩展名为 .EXE 的可执行文件D:\MASM\DEBUG example.exe;对可执行文件进行调试9、要求掌握的调试命令(在 DEBUG 中使用的命令a: U - 反汇编命令用法: -U 代码段地址:起始偏移地址如:-U CS:100b: D - 显示内存中的数据命令用法: -D 数据段地址:存放数据的偏移地址如:-D DS:00 20c: T - 单步执行程序命令用法: -T 要执行的指令条数如:-T 3d: G - 连续执行程序命令用法: -G=代码段地址:指令的起始偏移地址指令的结束偏移地址如: -G=CS:100 106注意: 结束地址一定要是操作码的所在地址e: R - 查看和修改寄存器数据命令用法: -R 回车如:-R AXf: F - 对内存单元填充数据命令用法: -F 数据段地址:偏移首地址偏移未地址填入的数据如: -F DS:100 120 ffg: Q - 退出”DEBUG“应用程序命令10、应用例子;二进制到BCD转换(a.asm;将给定的一个二进制数,转换成二十进制(BCD码DATA SEGMENT RESULT DB 3 DUP(?DATA ENDS CODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV AX, 123MOV CL, 100DIV CLMOV RESULT, AL ; 除以 100, 得百位数MOV AL, AHMOV AH, 0MOV CL, 10DIV CLMOV RESULT+1, AL ; 余数除以 10, 得十位数MOV RESULT+2, AH ; 余数为个位数JMP $ CODE ENDSEND START汇编源程序操作:D:\MASM>MASM a.asm ;D:\MASM>LINK a.OBJ;对可执行文件进行调试的操作:D:\MASM>DEBUG A.EXE--U CS:0000 ;用反汇编命令”U 代码段地址:起始偏移地址“显示出程序的表示符执行程序前观察内存中的数据-D DS:0000 ;用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址”显示内存中的数据-G=CS:0000 001E ;连续执行程序命令代码段地址:指令的起始偏移地址指令的结束偏移地址执行程序后观察内存中的数据(结果-D DS:0000 ; 用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址”显示内存中的数据-R IP 修改IP寄存器中的数据IP 001E 显示修改前的数据:00 输入修改的数据-T ;单步执行程序命令(执行一条指令-T3 ;执行3条指令-R -R AX AX 007B :1111 -R ;查看寄存器数据命令;查看和修改寄存器数据命令;查看寄存器数据命令 -D DS:0000 ;用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址” 显示内存中的数据 -F 数据段地址:偏移首地址偏移未地址填入的数据 -F DS:0000 0030 DF ;对内存单元填充数据 -D DS:00 ;观察内存中的数据-Q ;退出”DEBUG“ 应用程序命令。
实验一汇编语言上机及Debug调试
实验一汇编语言程序上机过程以及调试(1)一、预习内容1.工具软件MASM、LINK的使用2.常用DEBUG命令的使用: G,D,R,T,U,Q3.完整程序设计方法的格式。
二、目的要求1.掌握常用工具软件MASM、LINK的使用2.掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序3.掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
三、实验内容比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。
DSEG SEGMENTstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.'mess1 db 'Match.',13,10,'$'mess2 db 'No match.',13,10,'$'DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG,MAIN PROC FARstart: mov ax, dsegmov ds, axmov es, axlea si ,string1①cld②repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp: mov ah,09hint 21hmov ax, 4c00hint 21hMAIN ENDPCSEG ENDSend start实验步骤:1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在d:\masm下,注意保存时将文件扩展名改为.asm(如test1.asm)。
2)屏幕左下角”开始”–“运行”输入cmd ,进入dos命令操作,先用d: 和cd mas m 命令改变路经,接着用”masm + 文件名” (如masm test1,这里文件名可以不带扩展名)对源文件进行汇编,产生.obj文件和.LST文件。
实验一-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 1RESULT_2 DB 1RESULT_3 DB 1DATA ENDSSTACK SEGMENT STACK ; 堆栈段STA DB 64 DUP(0)STACK_TOP DB 0STACK ENDSCODE SEGMENT; 代码段ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACKSTART:MOV AX, DATAMOV DS, AX ; 设置数据段MOV AX, STACKMOV SS, AX ; 设置堆栈段LEA SP, STACK_TOP ; 设置栈顶指针MOV AX, 2afHMOV CL, 100DIV CLMOV RESULT_1, AL ; 除以100, 得百位数MOV AL, AHMOV AH, 0MOV CL, 10DIV CLMOV RESULT_2, AL ; 余数除以10, 得十位数MOV RESULT_3, AH ; 余数为个位数MOV AX,4C00H ; 返回DOSINT 21H ;CODE ENDSEND START ; 最后一行要按回车键5、实验及报告要求:1)用合适的编辑软件编辑以上源文件并存入合适目录;要求补充注释未注释的伪指令和指令;2)分别在DOS和Windows下编译、连接生成可执行文件,比较两个环境下生成的机器码的长度和内容;试指出第2、5、7、10、14条指令的IP和机器码。
汇编语言实验报告
实验一汇编程序的汇编及运行1.实验目的和要求1、熟悉汇编程序的汇编、连接、执行过程2、生成LST文件,查看LST文件3、生成OBJ文件,修改语法错误4、生成EXE文件5、执行2.实验环境IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS 2.0以上;调试程序:;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。
3.实验内容及实验数据记录1、将数据段输入,取名1.txt,保存在MASM文件夹下。
生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。
试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?DATA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DB ‘IBM PC’DA2 DB 0AH, 0DHCOUNT EQU $-DA1DATA ENDSEND2、输入有错误的文件,修改错误语句。
(MASM没有出现错误即可。
不必连接、运行。
)DATA SEGMENTVAR1 DB 0, 25, ODH, 300VAR2 DB 12H, A4H, 6BHVAR3 DB ’ABCDEF’VAR4 DW 1234H, 5678HVAR5 DW 10H DUP(?)DATA ENDSCODE SEGMENTASSUME CS: CODE, DE: DATA BEING MOV AX, DATAMOV DS, AXLEA SI, VAR5MOV BX, OFFSET VAR2MOV [SI], 0ABHMOV AX, VAR1+2MOV [BX], [SI]MOV VAR5+4, VAR4MOV AH, 4CHINT 21HCODE ENDSEND START3、输入正确的程序,汇编、连接、运行STACKS SEGMENT STACKDW 128 DUP(?)STACKS ENDSDATAS SEGMENTSTRING DB ‘WELCOME!’, 13, 10, ‘$’DATAS ENDSCODES SEGMENTASSUME CS: CODES, DS: DATASSTART:MOV AX, DATASMOV DS, AXLEA DX, STRINGMOV AH, 9INT 21HMOV AH, 4CHINT 21HCODES ENDSEND START4.算法描述及实验步骤(1)编写源程序。
第8章 汇编语言程序开发与调试
第8章 汇编语言程序开发与调试
8.1 汇编语言程序开发过程 8.2
第8章 汇编语言程序开发与调试
8.1 汇编语言程序开发过程
返回本章首页
第8章 汇编语言程序开发与调试
汇编语言开发过程
(1)编写程序,建立扩展名为.asm的汇编源程
序文件。
(2)对源程序进行汇编,生成目标文件(.obj)。
;------------------- 子程序ASCII结束--------------------------------------------
另外,对于大多数汇编语言程序都需通过调试才能检验 程序执行结果的。下面我们讨论汇编语言程序的调试方法。
返回本节
第8章 汇编语言程序开发与调试
8.2 汇编语言程序的调试方法
命令来调试程序。
返回本节
第8章 汇编语言程序开发与调试
3. DEBUG的主要命令
在输入提示符“-”后,键入?,然后回车,可以显示 DEBUG命令一览表。下面介绍其中得主要命令。 (1) 显示存储单元的命令D(DUMP),格式为:
-D[address]或_D[range]
例如,按指定范围显示存储单元内容的方法为: -d 100 120 18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G ...8.G.....G ... 18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37.. ; .. h ..M PQVW. 7 18E4:0120 8B
图 8-7 编译界面
第8章 汇编语言程序开发与调试
同样直接输入demo.obj即可。在连接过程中 会提示我们是否需要生成映像文件.map和库文 件.lib,如下图8-8所示。一般不需要,可以直接 键入Enter跳过去。
汇编语言的编程步骤与调试方法
汇编语言的编程步骤与调试方法汇编语言作为一种低级编程语言,具有高度的灵活性和效率,尤其适用于对计算机底层操作进行精确控制的应用。
本文将介绍汇编语言的编程步骤与调试方法。
一、编程步骤1. 设计算法:编程之前,首先需要明确编写代码的目的和功能。
根据需求,设计出合适的算法,确定程序的输入、输出等基本要素。
2. 选择汇编语言指令集:根据计算机的硬件平台和操作系统,选择合适的汇编语言指令集,如x86、ARM等。
3. 编写代码:根据算法,使用汇编语言指令集编写代码。
汇编语言使用助记符来表示指令和操作数,需要了解指令的语法和使用方法。
4. 组织程序结构:在编写代码时,需要按照一定的结构组织程序,包括定义数据段、代码段等,并进行正确的程序控制流程设计。
5. 完善程序功能:根据需求,完善程序的各项功能。
可以包括输入输出处理、数据操作、逻辑判断、循环处理等。
6. 调试和优化:编写完成后,进行程序的调试和优化。
可以通过调试工具、打印输出等方式,定位和解决程序中的错误和问题。
同时,优化程序的性能,提高代码的执行效率。
7. 文档记录:在编写代码的过程中,逐步记录代码的功能、变量定义、重要的注释等信息,便于他人阅读和维护。
二、调试方法1. 单步调试:单步调试是指逐条执行汇编语言程序,观察每条指令的执行情况。
通过单步调试可以查看寄存器的值、内存的状态等信息,以便定位错误。
2. 设置断点:在需要观察或调试的代码行上设置断点,运行程序时会在断点处停止执行,可以查看此时程序的状态,并逐步分析代码的执行流程。
3. 查看寄存器和内存:在调试过程中,可以查看寄存器和内存中的值,以判断程序是否按照预期的方式处理数据。
通过查看寄存器和内存的值,可以分析代码的执行过程和结果。
4. 打印输出:可以通过在程序中插入打印输出语句,输出关键变量的值,以便观察程序的执行过程和数据的变化。
5. 利用调试工具:使用专业的调试工具可以更加方便地进行汇编语言程序的调试。
实验二 汇编语言程序上机过程及调试
实验报告二课程微机原理实验名称汇编语言程序上机过程以及调试第页专业电子信息班级__ __ 学号_ __ 姓名实验日期:2014 年 3 月10 日报告退发(订正、重做)一、实验目的学习汇编语言程序设计的基本步骤,即编辑(EDIT)程序、汇编(MASM)、连接(LINK)和运行,使对汇编语言程序设计有一个初步的认识。
二、实验内容1、学习使用全屏幕文本编辑软件EDIT。
用EDIT输入一段给定的源程序。
2、用MASM对已存盘的源程序进行汇编,形成目标文件(.OBJ);如有错误,再返回到EDIT进行修改。
3、用LINK对上述形成的目标文件进行连接,形成可执行文件(.EXE)4、在DOS提示符下运行该可执行文件。
[汇编语言程序的编写格式]汇编语言程序一般由几个段组成,它们分别是堆栈段,数据段,代码段。
任何一个源程序至少必须有一个代码段和一条作为源程序结束的伪指令END。
段的定义有两种格式,分述如下:1,完整的段定义格式:一个段由段头,段体,段尾组成,形式如下:段名SEGMENT[定位类型][组合类型][‘类别’]……段名ENDS其中SEGMENT后的参数一般可省略,详细说明参阅后面的有关章节。
2,简化的段定义格式(MASM5.0版本提供)每段以.开始后跟固定的段名,一般形式如下:DOSSEG.MODEL 存储类型;“存储类型”可选择为SMALL。
.STACK[大小];堆栈段,“大小”指定堆栈的字节数。
.DATA;数据段。
.CODE[名字];代码段;一般只有一个代码段,名字可缺少……例1:用完整的段定义编写一源程序。
NAME EXAM1;可以省略DATA SEGMENT;定义数据段,以下是数据段的内容STR1 DB “HELLO,WELCOME!”,13,10,‘$’STR2 DB “DO YOU LIKE COMPUTER?(Y/N)”,13 10,‘$’STR3 DB “NICE!”,13,10,‘$’STR4 DB “SORRY!”,13,10,‘$’STR5 DB “UNKNOW,ANSWER AGAIN!(Y/N)”,DB 13,10,‘$’STR6 DB “SEE YOU NEXT TIME!”,13,10,‘$’DA TA ENDS ;数据段结束CODE SEGMENT ;定义代码段ASSUME CS:CODE;DS:DATA;以下是代码段内容START:MOV AX,DA TA;给数据段寄存器赋值MOV DS,AXMOV AH,9;显示一字符串的功能号MOV DX,OFFSET STR1;显示字符串STR1的偏址INT 21H;DOS功能调用ASK :MOV DX,OFFFSET STR2;显示字符串STR2INT 21HMOV AH,1;键盘输入一字符的功能号INT 21H;键入的字符ASCⅡ码在ALNOT AL;求反TEST AL,‘Y’;是否按下‘Y’或‘y’键JE NEXT1TEST AL,‘y’JE NEXT1TEST AL,‘N’;是否按下‘N’键或‘y’键JE NEXT2TEST AL, ‘n’JE NEXT2MOV DX,OFFSET STR5;不是按上述键MOV AH,9INT 21HJMP ASK;再返回ASKNEXT1:MOV DX,OFFSET STR3;是按下‘Y’或‘y’键MOV AH,9INT 21HJMP BYENEXT2:MOV DX,OFFSET STR4;是按下‘N’或‘n’键MOV AH,9INT 21HBYE:MOV DX,OFFSET STR6INT 21HMOV DL,7;喇叭响的ASCⅡ码MOV AH,2INT 21HMOV AH,4CH;退回DOSINT 21HCODE ENDS;代码段结束END START;源程序结束注:源程序中的每一行注释语句前一定要加分号‘;’,下同。
keil调试 汇编语言
keil调试汇编语言摘要:1.汇编语言基本概念2.Keil调试器简介3.汇编语言程序调试步骤4.实战案例:汇编语言程序调试5.总结与建议正文:汇编语言是一种低级编程语言,它与机器语言密切相关,主要用于编写嵌入式系统、操作系统等底层程序。
汇编语言的优势在于它能够直接操作硬件,使得程序员能够更加深入了解硬件结构和系统运行原理。
Keil是一款流行的嵌入式软件开发工具,它具有强大的调试功能,可以帮助程序员高效地调试汇编语言程序。
本文将介绍如何使用Keil调试汇编语言程序。
一、汇编语言基本概念汇编语言是一种面向硬件的编程语言,它使用助记符代替机器语言的操作码,使得编写程序更加简便。
汇编语言程序通常由汇编指令、数据定义和程序段组成。
汇编语言程序的编写需要对硬件结构和指令集有一定了解,这样才能充分发挥硬件性能。
二、Keil调试器简介Keil调试器是嵌入式开发中常用的调试工具,它支持多种处理器架构,如ARM、MIPS等。
Keil调试器具有以下功能:1.实时调试:可以在运行时观察程序状态,如寄存器值、内存数据等。
2.断点调试:设置断点,当程序执行到断点时,调试器会暂停程序运行。
3.单步调试:逐步执行程序,观察程序运行过程。
4.数据监视:实时监视程序中的数据变化。
5.调试输出:设置调试输出,如打印、图形界面等。
三、汇编语言程序调试步骤1.创建项目:在Keil中创建一个新的项目,选择相应的处理器和编译器。
2.编写汇编程序:在项目中编写汇编程序,注意合理划分程序段和定义数据。
3.配置调试参数:设置调试时所需的参数,如断点、监视变量等。
4.编译程序:编译汇编程序,生成目标文件。
5.下载目标文件:将目标文件下载到开发板,开始运行程序。
6.调试程序:使用Keil调试器进行实时调试,观察程序运行状态,找出问题所在。
7.修改程序:根据调试结果,对汇编程序进行修改。
8.重复步骤3-7,直至程序正常运行。
四、实战案例:汇编语言程序调试以下是一个简单的汇编语言程序示例,通过Keil调试器进行调试:```ORG 00HMOV A, #00HMOV P1, AEND```1.创建项目,编写汇编程序。
汇编语言程序设计上机步骤与调试方法
汇编语言程序设计上机步骤与调试方法在汇编语言程序设计中,上机步骤与调试方法是非常重要的,它们能够帮助程序员更好地编写和调试程序。
本文将介绍汇编语言程序设计的上机步骤以及常用的调试方法,帮助读者更好地理解和应用这些知识。
一、上机步骤1. 准备工作在开始上机之前,我们需要做一些准备工作。
首先,确认计算机已经连接好必要的硬件设备,例如键盘、显示器等。
其次,确保操作系统和开发环境已经正确安装并能够正常运行。
最后,根据需要准备好所需的汇编语言文档和程序样例。
2. 创建新项目在开始编写汇编语言程序之前,我们需要创建一个新的项目。
在项目中,我们可以组织和管理相关的文件和代码。
通常,我们会选择一个合适的集成开发环境(IDE)来创建和管理项目。
3. 编写程序在创建项目之后,我们可以开始编写汇编语言程序。
首先,我们需要了解目标机器的指令集和寄存器,以便正确地编写程序。
然后,根据需求,我们可以使用不同的指令、寄存器和内存来实现所需的功能。
在编写程序的过程中,注意代码的可读性和易于维护性是非常重要的。
4. 调试程序编写完汇编语言程序后,我们需要进行调试,以确保程序的正确性和稳定性。
调试是一个迭代过程,通常包括以下步骤:- 设置断点:在程序中设置断点,以便在特定位置停止程序的执行。
- 单步执行:通过逐条执行程序的指令,我们可以观察程序的执行过程,并检查各寄存器和内存的值。
- 监视变量:在调试过程中,我们可以监视程序中的变量值,以验证其正确性。
- 查看输出:观察程序的输出结果,与预期结果进行比较,以确定程序是否按照预期执行。
- 修复错误:如果发现程序中存在错误,我们需要对程序进行修改和调整,直到问题解决为止。
5. 运行程序在完成程序的调试之后,我们可以运行程序并观察其运行效果。
在运行过程中,我们可以测试程序的各种功能,以确保其正常工作。
二、调试方法1. 打印输出在调试汇编语言程序时,打印输出是一种常用且简单有效的调试方法。
南理工微机实验报告
南理工微机实验报告篇一:南京理工大学微机实验报告微机实验报告实验2.1汇编语言程序的调试与运行思考题:1、带进位加法程序:DISP MACRO XMOV DL,XMOV AH,02HINT 21HENDMDATA SEGMENTDATA1 DB'65087'DATA2 DB'75087'N EQU $-DATA2DATA ENDSSTACK SEGMENT STACKSTA DB 20 DUP (?)TOP EQU $-STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXLEA SI,DATA1MOV BX,0MOV CX,NCALL DISPLDISP '+'LEA SI,DATA2MOV BX,0MOV CX,NCALL DISPLDISP '='LEA DI,DATA1MOV CX,NCALL ADDALEA SI,DATA1MOV BX,0MOV CX,NCMP DL,0JZ NEXTDISP '1'NEXT: CALL DISPLDISP 0DHDISP 0AHMOV AX,4C00HINT 21HDISPL PROCDS1:MOV AH,02HMOV DL,[SI+BX]INT 21HINC BXLOOP DS1RETDISPL ENDPADDA PROCPUSH CXMOV BX,0AD1:SUB BYTE PTR [SI+BX],30H SUB BYTE PTR [DI+BX],30HINC BXLOOP AD1POP CXPUSH CXMOV BX,N-1CLCAD2:MOV AL,[SI+BX]ADC AL,[DI+BX]AAAMOV [DI+BX],ALDEC BXLOOP AD2POP CXPUSH CXMOV BX,0MOV DL,0JNC AD3MOV DL,1AD3:ADD BYTE PTR [DI+BX],30H INC BXLOOP AD3POP CXRETADDA ENDPCODE ENDSEND START结果截图:2、上机步骤,调试方法:1、写代码完成功能要求,文件格式为.asm文件(如21si.asm),将文件放入带汇编工具的文件夹中,即含有汇编工具(MASM.EXE)和链接工具(LINK.EXE)的文件夹。
汇编语言程序设计debug调试命令
标志位:
“1”
“0”
OF:溢出标志 —— OV溢出, NV没溢出
DF:方向标志 —— DN减量, UP增量
IF:中断允许标志 —— EI允许, DI禁止
SF:符号标志 —— NG负数, PL正数
ZF:“0”标志
—— ZR为“0”, NZ不为“0”
下次课预习内容:顺序结构程序设计
要求:1、实验指导书及实验报告上的预习内容 2、预习验收时要提供设计的源程序磁盘或笔写程序
-E CS:211 21 2A
;从CS:211H开始输入2个字节的内容
-E 110 ‘anything’
;输入从DS:110H开始的字符串
⑹ D(显示存储器的内容):
默认寄存器是DS,格式是:
-D段地址:偏移地址
;显示80H个字节的内容。
-D
显示从上一次结束处开始的80H个字节 的内容。
⑺ R(显示修改寄存器内容) -R ;显示所有寄存器内容。 -RDS ;显示并可修改DS的内容。 -RF ;显示并可修改标志寄存器
实验数据记录注意事项:
1、实验报告第三页:表格中标志位与计算机 自动给出的不是一一对应的,要求记录1/0
2、实验报告第四、五页:列出调试运行后的程序清单
因为行汇编不识别标号,所以:用行汇编运行的程
序中没有行号,转移指令处是绝对地址。
验收内容:
1、用T命令执行完程序最后一条指令处的界面:
-T =段地址:0
-G=段地址:偏移地址
-G
;从程序当前位置执行到
程序结束
-G =200 260
;从指定200H地址开始执行, 遇到断点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中粗斜体的数字可以修改。
7、内存操作数及各种寻址方式使用
程序内容:
MOVAX,1234
MOV[1000],AX
MOVBX,1002
MOVBYTE PTR[BX],20
MOVDL,39
INCBX
MOV[BX],DL
DECDL
MOVSI,3
MOV[BX+SI],DL
MOV[BX+SI+1],DL
0B17:0113 BE0300 MOV SI,0003
-T
AX=1234 BX=1003 CX=0000 DX=0038 SP=FFEE BP=0000 SI=0003 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0116 NV UP EI PL NZ NAPONC
UP EI PL NZ NA PO NC
0B17:0100 3031 XOR [BX+DI],DH
DS:0000=CD
-A100
0B17:0100 MOV WORD PTR[1100],3445
0B17:0106 MOV WORD PTR[1102],5678
0B17:010CMOV WORD PTR[1106],6732
MOVWORD PTR[BX+SI+2],2846
操作步骤
1) 用A命令键入上述程序,并用T命令逐条运行。
2) 每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。
-F10010F'A'
-D100 10F
0B17:0100 41 41 41 41 41 41 41 41-41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA
6、用DEBUG调试和运行下列程序,记录所用的DEBUG命令和运行结果。
MOV WORD PTR [1100],3445
MOV WORD PTR [1102],5678
MOV WORD PTR [1106],6732
MOV AX,[1100]
SUB AX,[1102]
ADD AX,[1106]
MOV [1104],AX
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=010FNV UP EI PL NZ NA PE NC
0B17:010F8817 MOV [BX],DL DS:1003=83
-T
AX=1234 BX=1003 CX=0000 DX=0039 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0122 NV
UP EI PL NZ NA PO CY
0B17:0122 49 DEC CX
-R
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE
BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0100 NV
-T
AX=1234 BX=1002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0109 NV UP EI PL NZ NAPONC
0B17:0109 C60720 MOV BYTE PTR [BX],20 DS:1002=51
-T
AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0106 NV UP EI PL NZ NAPONC
0B17:0106 BB0210 MOV BX,1002
0B17:010CMOV DL,39
0B17:010E INC BX
0B17:010FMOV [BX],DL
0B17:0111 DEC DL
0B17:0113 MOV SI,3
0B17:0116 MOV [BX+SI],DL
0B17:0118 MOV [BX+SI+1],DL
0B17:011B MOV WORD PTR[BX+SI+2],2846
0B17:0112 MOV AX,[1100]
0B17:0115 SUB AX,[1102]
0B17:0119 ADD AX,[1106]
0B17:011D MOV [1104],AX
0B17:0120 HLT
0B17:0121
-T
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE
BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=010CNV
UP EI PL NZ NA PO NC
0B17:010CC70606113267 MOV WORD PTR
[1106],6732 DS:1106=924E
-T
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE
BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0120 NV
UP EI PL NZ NA PE CY
0B17:0120 F4 HLT
-T
AX=44FF BX=0000 CX=0000 DX=0000 SP=FFEE
BP=0000 SI=0001 DI=0000
0B17:0100 30 31 32 33 34 35 36 37-38 393A3B3C3D 3E3F0123456789:;<=>?Leabharlann -A1000B17:0100
-R
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE
BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0100 NV
AX=1234 BX=1002 CX=0000 DX=0039 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=010E NV UP EI PL NZ NA PO NC
0B17:010E 43 INC BX
-T
AX=1234 BX=1003 CX=0000 DX=0039 SP=FFEE BP=0000 SI=0000 DI=0000
BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=011D NV
UP EI PL NZ NA PE CY
0B17:011D A30411 MOV [1104],AX
DS:1104=068C
-T
AX=44FF BX=0000 CX=0000 DX=0000 SP=FFEE
BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0119 NV
UP EI NG NZ ACPOCY
0B17:0119 03060611 ADD AX,[1106]
DS:1106=6732
-T
AX=44FF BX=0000 CX=0000 DX=0000 SP=FFEE
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0111 NV UP EI PL NZ NA PE NC
0B17:0111 FECA DEC DL
-T
AX=1234 BX=1003 CX=0000 DX=0038 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0113 NV UP EI PL NZ NAPONC
汇编语言程序设计实验
实验一
汇编语言的调试和运行
班级:
姓名:
学号:
日期:
实验一汇编语言的调试和运行
一、实验目的
1、熟悉DEBUG程序和命令,并用它运行基本指令和察看运行结果。
怎样调用Debug
② 如何显示和修改内存单元
③ 如何显示和修改CPU的寄存器
④各标志位的状态是如何表示的,怎样修改标志寄存器
⑤ 怎样汇编与反汇编
二、实验内容
1、键入 DEBUG 进入 DEBUG 控制状态,显示提示符 '- '
2、用命令 F10010F'A' 将'A'的ASCII码填入内存。
3、用命令 D10010F观察内存中的十六进制码及屏幕右边的ASCII字符。
4、用命令 F11011F41 重复上二项实验,观察结果并比较。
5、用命令E100 30 31 32 ……3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是什么字符的ASCII码?
BP=0000 SI=0000 DI=0000
DS=0B17 ES=0B17 SS=0B17 CS=0B17 IP=0112 NV
UP EI PL NZ NA PO NC
0B17:0112 A10011 MOV AX,[1100]
DS:1100=3445
-T
AX=3445 BX=0000 CX=0000 DX=0000 SP=FFEE
0B17:0116 8810 MOV [BX+SI],DL DS:1006=00