《汇编语言》实验指导书
汇编语言实验指导书

目录第一部分汇编语言程序的上机过程 (1)一、建立汇编语言的工作环境 (1)二、在计算机上运行汇编语言的步骤 (1)三、建立ASM文件 (1)四、用MASM程序产生OBJ文件 (3)五、用LINK程序产生EXE文件 (3)六、程序的执行 (3)七、举例 (3)第二部分汇编语言上机调试 (4)一、为何需要调试? (4)二、如何进行调试? (5)第三部分汇编语言上机内容 (8)实验一输出字符串 (8)实验二算术指令综合编程 (8)实验三查找子字符串 (9)实验四字符串正向、反向输出 (9)实验五信息检索 (9)实验六格式化输出 (9)实验七数组合并 (10)实验八字符统计 (10)实验九数制转换 (10)第四部分汇编语言实验参考代码 (11)实验一输出字符串 (11)实验二算术指令综合编程 (11)实验三查找子字符串 (12)实验四字符串正向、反向输出 (13)实验五信息检索 (14)实验六格式化输出 (17)实验七数组合并 (18)实验八字符统计 (20)实验九数制转换 (22)第一部分汇编语言程序的上机过程一、建立汇编语言的工作环境为运行汇编语言程序至少要在磁盘上建立以下文件:1、编辑程序,如EDIT.EXE2、汇编程序,如MASM.EXE3、连接程序,如LINK.EXE4、调试程序,如必要时,还可建立如CREF.EXE,EXE2BIN.EXE等文件。
二、在计算机上运行汇编语言的步骤1、用编辑程序建立ASM源文件,以ASM作为扩展名2、用汇编程序把ASM文件转换成OBJ文件3、用连接程序把OBJ文件转换成可执行文件4、在DOS提示符下直接键入可执行文件名即可执行该程序三、建立ASM文件建立ASM文件的编辑程序可以是DOS自身带的编辑程序EDIT.EXE,在DOS提示符下键入EDIT命令即可出现EDIT界面,其操作如下:D:\>edit源程序输入完后,以ASM作为扩展名进行保存,假设所保存的文件名为:ex.asm。
汇编语言实验一 指导书

实验一:汇编上机指导及例示一、实验目的●了解汇编语言程序的运行环境和所需的系统程序;二、实验要求●掌握如何编辑、汇编、连接和运行汇编程序;●掌握常用的DEBUG命令。
三、实验原理题:在屏幕上显示一条'THIS IS A SAMPLE PROGRAM OF KEYBOARD AND DISPLAY'提示信息,如从键盘上输入ESC键,则结束程序,如输入的不是大写字母,则在显示器上显示出来,如输入的是大写字母,则转换为小写字母输出。
四、实验设备计算机五、实验步骤1、用用文字编辑工具(常用EDIT或记事本)将源程序输入,其扩展名为.ASM。
2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。
若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。
3、用TYPE命令显示产生的.LST文件。
4、用LINK将.OBJ文件连接成可执行的.EXE文件。
5、在DOS状态下运行LINK产生的.EXE文件。
用于调试程序时的输入格式:DEBUG FILENAME.??? 回车其中FILENAME是主文件名,???是扩展文件名,例如我们在此前已编译好了一个文件,它的名字为:djx.exe 要对它进行调试时就在DOS提示符下打:DEBUG djx.exe 回车,便可见到 '-' 提示符,如无任何提示说明正确,可进行调试按ESC键可返回DOS。
若未出现预期结果,用DEBUG检查程序。
附: 基本debug操作1、显示内存单元的内容:-d [地址] 或 [范围]2、修改内存单元的内容:-e 地址内容表或-e 地址3、显示CPU内部寄存器和标志位状态:-r4、显示和修改某个寄存器的内容:-r 寄存器名5、汇编命令:-a 地址6、逐条指令追踪:-t [=地址] (无地址则执行IP所指示的指令)7、退出debug:-g8、多条指令追踪:-t [=地址] [n]注:该指令从指定地址起执行n条命令后停下来9、运行命令:-g [=地址1] [地址2 [地址3...]]地址1规定了运行起始地址,后面的地址均为若干断点地址10、反汇编命令:(1)-u [地址]该命令从指定地址开始,反汇编32个字节,若省略地址,则从上一个u命令的最后一条指令的下一单元开始显示32个字节(2)-u 范围该命令对指定范围的内存单元进行反汇编如:-u 04ba:0100 0108等价于:-u 04ba:0100 L9下面给出一些常见出错信息,以便查对:1、Register already defined 汇编内部出现逻辑错误2、Unknown symbol type 在符号语句的类型中,有些不能识别的东西3、Symbol is multi-defined 重复定义一个符号4、Symbol not defined 符号没有定义5、Syntax error 语句的语法与任何可识别的语法不匹配6、Symbol is reserved word 企图非法使用一个汇编程序的保留字(例:定义add为一变量)7、Not proper align/combine type SEGMENT参数不正确8、One operand must be const 这是加法指令的非法使用9、Operands must be same or 1 abs 这是减法指令的非法使用10、Already have base register 试图重复基地址11、Illegal size for item 引用的项的长度是非法的,(如:双字移位)12、Illegal register value 指定的寄存器值不能放入“reg”字段13、Must be AX or AL 某些指令只能用AX或AL14、Improper use of segment reg 段寄存器使用不合法(如:mov ds,0)15、Division by 0 or overflow 给出一个用0作除数的表达式16、Value is out of range 数值大于需要使用的17、CS register illeal usage 试图非法使用CS寄存器18、DUP is too large for linker DUP嵌套太长,以至于从连接程序不能得到所要的记录。
新版汇编语言程序设计实验指导书(精)

新版汇编语言程序设计实验指导书(精)汇编语言实验指导书目录实验一debug的启动及其基本命令的使用(2实验二内存操作数及寻址方法(6实验三汇编语言程序的调试与运行(8实验四查表程序设计(10实验五系统功能调用(12实验六循环程序设计(13实验七分支程序设计(15实验八子程序设计(18实验九综合程序设计(20附录实验报告(21实验一debug的启动及其基本命令的采用一.实验目的:掌握debug的基本命令及其功能二.实验内容:debug就是专门为汇编语言设计的一种调试工具,它通过STM,设置断点等方式为汇编语言程序员提供更多了非常有效率的调试手段。
1、debug程序的启动在dos提示符下,可以键入命令:c>debug[d:][path][文件名][参数1][参数2]其中文件名就是被调试文件的名称,它须就是继续执行文件(exe,两个参数就是运转被调试文件时所须要的命令参数,在debug程序调到后,发生提示符“-”,此时,可以键入所需的debug命令。
在启动debug时,如果输入了文件名,则debug程序把指定文件装入内存。
用户可以通过debug的命令对指定文件进行修改、显示和执行。
如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用debug的命令进行修改、显示和执行。
2、debug的主要命令(1编订命令a,格式为:-a[地址]该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。
(2反汇编命令u,有两种格式:1-u[地址]该命令从选定地址已经开始,反汇编32个字节,若地址省略,则从上一个u命令的最后一条指令的之下一个单元已经开始表明32个字节。
2-u范围该命令对指定范围的内存单元进行反汇编,例如:-u04ba:01000108或cu04ba:0100l9此二命令就是耦合的。
(3运转命令g,格式为:-g[=地址1][地址2[地址3。
《汇编 语言》实验 指导书

孝感学院计算机科学系本科《汇编语言程序设计》实验指导书目录实验一:汇编环境与DEBUG调试 (2)实验二:8086汇编语言分支程序设计 (8)实验三:8086汇编语言循环程序设计 (10)实验四:8086汇编语言子程序程序设计 (13)实验五:8086汇编语言中断与磁盘程序设计 (17)相关说明:《汇编语言程序设计》实验的主要目的是掌握汇编程序调试的方法与一般的程序设计能力,为今后的硬件应用打下基础。
因此本实验指导书重在强调实验调试的环节,有关程序设计的具体方法及相关算法请参见教材。
此文件中用黑体字加粗的内容一般为重要信息或实验的步骤与要求,未使用黑体加粗或有下划线的内容是提示信息或问题的答案。
实验一:汇编环境与DEBUG调试目的与要求熟悉汇编环境与汇编源程序的调试,重点掌握汇编的过程与常用DEBUG命令的用法实验内容一、熟悉汇编的编程环境1.汇编语言源程序的建立:可以使用任何文本编辑器建立汇编源程序文件,如:TC、EDIT等。
但建立的文件扩展名建议为.asm,下面的源程序功能用于在屏幕上输出字符串“hello,world!”,我们通过此源程序的运行过程了解汇编的编程环境。
DATA SEGMENTBUF DB“hello,world!$”DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AX,9INT21HMOV AH,4CHINT21HCODE ENDSEND START在DOS提示符下键入以下编辑器命令,如:C:\MASM>EDIT或TC然后在编辑器的窗口中通过键盘输入以上源程序。
并保存为文件abc.asm.后返回到DOS提示符下。
2.将源程序文件汇编成目标程序文件:汇编功能可以使用Microsoft的MASM进行,微软的汇编程序有多个版本,但使用方法大致相同,本实验将使用MASM 5.0进行汇编。
汇编语言实验指导书 (3)

实验报告实验课程:汇编语言学生姓名:李斯超学号:6100409010专业班级:电三091班2010年12月20日目录实验1 利用DEBUG调试汇编语言程序段实验2 初级程序的编写与调试实验(一)实验3 初级程序的编写与调试实验(二)实验4 汇编语言程序上机过程实验5 分支程序实验实验6 循环程序实验实验7 子程序实验实验1 利用DEBUG调试汇编语言程序段一.实验目的1.熟悉DEBUG有关命令的使用方法;2.利用DEBUG掌握有关指令的功能;3.利用DEBUG运行简单的程序段。
二.实验内容1.进入和退出DEBUG程序;2.学会DEBUG中的1)D命令(显示内存数据D 段地址:偏移地址)例1:-D1002)E命令(修改指定内存)例1:-E100 41 42 43 44 48 47 46 45-D 100,L08结果:08F1:0100 41 42 43 44 48 47 46 45例2:-E 100:08F1:0100 76 42 :42是操作员键入此命令是将原100号内存内容76修改为42,用D命令可察看。
3)R命令(显示当前寄存器的内容)4)T命令(设置陷井,单步执行)5)A命令(将指令直接汇编成机器码输入到内存中。
)6)G命令等的使用(执行A命中输入的汇编指令)3.用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。
四.实验环境PC微机DOS操作系统或Windows 操作系统MASM.EXE,LINK.EXE,或宏汇编集成环境五.实验步骤1.在DOS提示符下,进入DEBUG程序;在运行中输入cmd命令调出DOS窗口,在其中输入debug命令进入程序。
2.详细记录每一步所用的命令,以及查看结果的方法和具体结果。
(1)在debug中输入D查看当前数据数据段的断地址:偏移地址中的内容。
如输入-d100,接着操作输入e命令,e命令可以修改指定的内存中的数据,如输入-e10041,42,43,44,48,47,46,45。
《汇编语言》实验指导书.

《汇编语言》实验指导书目录实验一Debug命令的使用 (3)实验二基本汇编指令的使用 (7)实验三汇编语言程序的调试与运行 (10)实验四系统功能调用程序的调试与运行 (15)实验五分支程序设计 (17)实验六循环程序设计 (20)实验七子程序设计 (23)实验八高级汇编语言程序设计 (25)实验九I/O程序设计 (30)实验十中断程序设计 (33)实验十一综合程序设计 (38)实验一Debug命令的使用一、知识点1、DEBUG简介DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。
在汇编语言程序调试中很常用。
DEBUG的提示符是“-”,所有DEBUG调试命令均在此提示符下输入。
DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。
DEBUG命令的使用注意问题:(1)字母不分大小写(2)只使用十六进制数,但没有带后缀字母“H”(3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。
(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。
2、Debug的调入和退出以WIN2000环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态:C:\Documents and Settings\lfy>然后输入命令:>Debug进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。
退出Debug的命令:Q3、Debug常用命令(1)汇编命令A,格式为:- A [地址]功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。
若不指定地址,则系统从默认的地址开始存放。
按回车键退出汇编状态应用:用于调试一条指令或几条指令组成的一个程序段。
(2)显示和修改寄存器命令R,格式为:- R [寄存器名]功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健。
实验三、基本汇编语言编程实验指导书

试验三、基本汇编语言编程试验一、试验目的1、学习用汇编语言编写程序;2、了解汇编语言与C语言程序的区别和在设置上的不同;3、了解TMS320VC5402汇编语言程序结果和一些简单的汇编语句用法;4、学习在CCS环境中调试汇编代码。
二、实验设备计算机、DSP硬件仿真器、DSP教学试验箱三、试验背景知识汇编语言程序除了程序中必须使用汇编语句之外,其编译选项的设置与C语言编制的程序也稍有不同。
汇编语言程序在执行时直接从用户制定入口开始,而C语言程序在执行时,先要使用C标准库中的初始化程序(入口标号为“_c_init00”),完成设置之后,才转入用户的主程序main()运行。
四、实验内容1、DSP源文件的建立;2、DSP程序工程文件的建立;3、掌握汇编语言在DSP中的应用;4、掌握在CCS 汇编变量的查看方法。
五、实验步骤1、将DSP仿真器与计算机连接号;2、将DSP仿真器的JTAG插头与DSP试验箱主板上DSP_JTAG相连接;3、打开试验箱电源。
观察SEED-DTK_Moard单元的+5V,+3.3V,+15V,-15V的电源知识灯以及SEED-DEC643的电源指示灯D1是否均亮;若有不亮的,请断开电源,检查电源。
4、运行,设置硬件仿真的环境。
5、运行,按照下列源文件编写test_asm,下载运行例程,观察各个汇编变量结果。
六、实验报告要求1、简述C语言程序和汇编程序在设置上的区别。
2、描述程序实现的功能和原理。
3、记录各个汇编变量的结果。
******************************************************************* * example.asm ******************************************************************** .title "example.asm".mmregsSTACK .usect "STACK",10h ; 为堆栈指定空间.bss a,4 ; 为变量分配9个字的空间.bss x,4.bss y,1.def start.datatable: .word 1,2,3,4 ; 变量初始化.word 8,6,4,2.textstart:STM #0,SWWSR ; 插入0个等待状态STM #STACK + 10h,SP ; 设置堆栈指针STM #a,AR1 ; AR1指向aRPT #7 ; 移动8个数据MVPD table,*AR1+CALL SUM ; 调用SUM子程序end: B endSUM: ; SUM子程序STM #a,AR3 ; 取数组a的首地址STM #x,AR4 ; 取数组x的首地址RPTZ A, #3 ; 下一条语句重复执行4次MAC *AR3+,*AR4+,A ;STL A,@y ; 结果返回给yRET.end***************************************************** vectors.asm 源程序复位向量*****************************************************.title "vectors.asm".ref start.sect ".vectors"B start ; 汇编程序入口.end.cmd文件-e startMEMORY{PAGE 0:EPROM: org = 0x4000, len=0x1000VECS: org = 0x5000, len=0x0080PAGE 1:SPRAM: org = 0x0060, len = 0x0020DARAM: org = 0x0080, len = 0x0100 }SECTIONS{.text :>EPROM PAGE 0.data :>EPROM PAGE 0.bss :>SPRAM PAGE 1STACK :>DARAM PAGE 1.vectors :>VECS PAGE 0}。
汇编语言实验指导书--智能15教材

目录第一部分汇编语言程序设计实验 (2)实验一输出字符‘A’ (2)实验二数据的显示实验 (5)实验三从键盘上输入数据实验 (12)实验四字符串的显示实验 (16)第一部分汇编语言程序设计实验实验一输出字符‘A’一、实验目的1.通过这个简单的例子熟悉在微机上建立、汇编、链接和运行8086/8088汇编语言程序的过程。
2.掌握字符的显示方法。
3.学习DOS系统功能调用。
二、实验内容输出字符‘A’,程序流程图如图1-1所示。
图1-1输出字符‘A’程序流程图源程序如下:PROG SEGMENTASSUME CS:PROGMOV DL, 'A'MOV AH, 2INT 21HMOV AH, 4CHINT 21HPROG ENDSEND三、实验设备PC机一台,MASM汇编程序四、实验原理DOS功能调用的两个子程序,调用方法如下:(1)设置入口参数(2)子程序编号送人AH(3)INT 21H,子程序请求中断指令有的子程序不需要入口参数,但大多数需要将参数送入指定地方。
MOV DL,'A'MOV AH,2INT 21H上面用的程序是DOS系统功能调用的2号子程序,功能是将字符送入屏幕显示。
其入口参数是把待输出字符的ASCII码送到DL寄存器中。
例如:ASCII码若是0DH,2号子程序处理成回车;ASCII码若是0AH,处理成换行。
MOV AH, 4CHINT 21H这是DOS系统功能调用的4CH号子程序,功能是返回操作系统,没有入口参数。
五、实验步骤1.用编辑软件(EDIT或记事本)将源程序输入,并存盘。
注意:源程序是用汇编语言语句编写的程序,并不能为机器所识别。
源程序的扩展名为ASM。
2.用宏汇编程序将.ASM源程序汇编成机器码的目标文件(OBJ文件)命令格式是:C:/>MASM 文件名↙此时,汇编程序会在屏幕上给出提示,一般选择回车键作为回答。
Object filename [文件名.OBJ]:↙Source listing [NUL.LST]:↙Cross-reference [NUL.CRF]:↙如果源程序没有错误,则在屏幕上会显示如下信息:0 Warning Errors0 Severe Errors在汇编过程中,如果源程序有错误,要在编辑状态下进行修改,然后重新汇编,直到没有语法错误,才能生成.OBJ文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)输入程序并汇编
_A100
0B03:0100 MOV DL,33
0B03:0102 MOV AH,2
0B03:0104 INT 2l
“0B03:0100”类似这样的地址是系统自动提供的,不需用户输入。至此程序已输入完毕,并汇编成机器指令。现在用G命令运行程序如下:
(2)运行程序
_G
3
Program terminated normally
编程思路(仅供参考):
该题目要求掌握运算中带符号数和无符号数运算的区别。本题目只考虑有符号数情况
参考程序清单:ABC.ASM
DATA SEGMENT
X DB1;x 单元存放数字1,以下类推
Y DB4
Z DB3
WDB?,? ;预留2个单元,存放运算结果
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
INT 21H
:
当要执行INT 21H这条指令时,若用T命令进行跟踪,则进入INT 21H程序(DOS功能调用)后,需要数十次T命令才能返回当前程序;若采用P命令进行调试,则只执行INT 21H一条指令,执行完立即返回,给调试者的感觉好象是执行了一条普通指令一样。因此,当读者以后遇到CALL、INT n指令或带重复前缀的数据串操作指令时,若不想观察相应过程的详细执行过程,就可以用P命令。
若是0则为偶数若为2则为奇数可以采用test指令和条件转移指令jz来实现在内存中以buf单元开始缓冲区中连续存放着10个学生的分数试编制程序统计英中90100分8089分6079分及60分以下少人并把结果分别存放在s9s8s7和s6试编制程序从键盘输入学生成绩abcd自动汇总并显示各类分数的人数假定各类分数的总人数在0止输入
DOS功能调用就是为诸如此类的目的设置的。DOS功能调用要求在进入INT 21H调用前,首先将功能调用号送AH寄存器,并根据功能调用号准备初始数据。也就是说INT 21H的2号功能调用是输出DL寄存器中的字符。INT 20H是BIOS中断服务,这一软中断用来正常结束程序。
具体步骤如下:
进入debug调试环境后,
其中(1)用指定段寄存器内容作段地址;(3)用CS内容作段地址;(4)以CS:100作地址。以后命令中提及的各种‘地址’形式,均指(1)、(2)、(3)中A命令后的地址形式。
2.比较命令C
格式:C <源地址范围>,<目标地址>
其中<范围>是由<起始地址><终止地址>指出的一片连续单元,或由<起始地址> L <长度>指定的。
《汇编语言》
实验指导
计算机学院网络工程系
李冬艳
2016.10.1
实验
一、实验目的及要求
1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。
2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、实验内容
1
本例中给出的程序是要求编写3+5=8的程序,并把8存入AL或AX中。设定源程序的文件名为ABC.ASM。(用任何一个种文本编辑器编写此程序,存盘)
1.汇编命令A
格式: (1)A <段寄存器名>:<偏移地址>
(2)A <段地址>:<偏移地址>
(3)A <偏移地址>
(4)A
功能:汇编命令是将用户输入的汇编语言指令,汇编为可执行的机器指令。键人该命令后显示段地址和偏移地址并等待用户从键盘逐条键入汇编语言指令。每当输入一行语句后按“ENTER”键,输入的语句有效。若输入的语句中有错,DEBUG会显示“^ Error”,要求用户重新输入,直到显示下一地址时用户直接键入回车键返回到提示符“_”。
例如:R AX
11
格式:Q
功能:返回DOS提示符下。
四、重新调试实验一的程序,看最终AX寄存器的值是多少?
实验三
一、实验目的
1.掌握数据传送和算术运算指令的用法。
2.熟悉在PC机上建立、汇编、连接和调试程序的方法。
3.理解计算机中除法溢出的含义。
二、实验内容
1.设W、X、Y、Z均为8位带符号数,要求完成计算表达式W=X+Y-Z。
功能:(1)将指定内容写入指定单元后显示下一地址,以代替原来内容。可连续键入修改内容,直至新地址出现后键入回车<ENTER>为止;(2)将<单元内容表>逐一写入由<地址>开始的一片单元中,该功能可以将由指定地址开始的连续内存单元中的内容,修改为单元内容表中的内容。
例如:_E DS:30 F8,AB,”AB”
功能:该命令将显示一片内存单元的内容,左边显示行首字节的段地址:偏移地址,中间是以十六进制形式显示的指定范围的内存单元内容,右边是与十六进制数相对应字节的ASCII码字符,对不可见字符以‘·’代替。
4.修改内存单元命令E
格式: (1)E <地址><单元内容>
(2)E <地址><单元内容表>
其中<单元内容>是一个十六进制数,或是用引号’(或”)括起来的字符串;<单元内容表>是以逗号分隔的十六进制数,或是用’或”括起来的字符串,或者是二者的组合。
7.跟踪命令T
格式:T [=<地址>][<条数>]
功能:如果键入T命令后直接按“ENTER”键,则默认从CS:IP开始执行程序,且每执行一条指令后要停下来,显示所有寄存器、状态标志位的内容和下一条要执行的指令。用户也可以指定程序开始执行的起始地址。<条数>的缺省值是一条,也可以由<条数>指定执行若干条命令后停下来。
1
在DEBUG环境下用户可以直接建立汇编语言源程序,并可以进行编辑修改和调试。
比如,在DEBUG下编写如下程序:
MOV DL,33H ;字符3的ASCII码送DL
MOV AH,2 ;使用DOS的2号功能调用
INT 21H ;进入功能调用,输出‘3’
该程序运行结果是在显示器上输出一个字符‘3’。如果要输出其它字符,请改变程序中‘33H’为相应字符的ASCII码。其中涉及DOS和BIOS功能调用。因为我们是在DOS的支持下运行汇编语言程序,所以一般情况下,不能轻易使用输入/输出指令直接通过端口输入/输出,而必须使用DOS内部提供的子程序完成输入/输出。
6.连续执行命令G
格式: (1)G
(2)G=<地址>
(3)G=<地址>,<断点>
其中(2)、(3)中的“=”是不可缺省的。
功能:
默认程序从CS:IP开始执行。
程序从当前的指定偏移地址开始执行。
从指定地址开始执行,到断点自动停止并显示当前所有寄存器、状态标志位的内容和下一条要执行的指令。DEBUG调试程序最多允许设置10个断点。
如果现在想分析一下该程序的指令,可以用反汇编命令U作如下操作:
(3)反汇编
_U 100,108
0B03:0100 B233 MOV DL,33
0B03:0102 B402 MOV AH,02
0B03:0104 CD21INT 21
(4)将机器指令程序送到起始地址为200H的若干单元,将输入指令复制到代码段的200单元,可进行如下操作:
或双击桌面的 “Masm for Windows 集成实验环境2012.5”快捷文件图标,进入汇编语言集成开发环境
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATA
MOV DS,AX
;==========================
MOV AL,X
ADD AL , Y ;x+y
SUB AL ,Z;x+y-z
MOV W ,AL 存结果到W单元
;==========================
;==========================输出结果
实验
一、实验目的
DEBUG.EXE程序是专门为分析、研制和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。它能使程序设计人员或用户触及到机器内部,因此可以说它是80X86CPU的心灵窗口,也是我们学习汇编语言必须掌握的调试工具。
二、实验内容
9.执行过程命令P
格式:P
功能:执行一条指令或一个过程(子程序),然后显示各寄存器的状态。
说明:该命令主要用于调试程序。它与跟踪命令T的作用类似,T命令是跟踪一条或多条指令,而P命令是执行一条指令(包括带重复前缀的数据串操作指令)或一个完整的过程(子程序)。
例如:设有如下指令序列
:
MOV AH,02H
功能:从<源地址范围>的起始地址单元起逐个与目标起始地址以后的单元顺序比较单元的内容,直至源终止地址为止。遇有不一致时,以<源地址><源内容><目标内容><目标地址>的形式显示失配单元及内容。
3.显示内存单元命令D
格式: (1)D <地址>
(2)D <地址范围>
(3)D
其中(1)以CS为段寄存器;(3)显示CS:100为起始地址的一片内存单元内容。
减/增
DN/UP
中断标志IF
开/关
EI/DI