MOV CL, 2 RCR AX, CL
四、实验步骤
1、利用DEBUG的A命令输入待调试的程序段。
2、利用单步执行命令T逐条执行指令,观察寄存器及相关状态位的值。 以实验内容2中的加法为例,实现加法运算: 注:下划线部分为程序员输入的内容。 (1)-A
1373:0100 MOV AX, 3344 ;DX.AX<- 11223344H 1373:0103 MOV DX, 1122 1373:0106 ADD AX, 7788 ; DX.AX+55667788H->DX.AX 1373:0109 ADC DX, 5566 1373:010D -T=100
AX=3344 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1373 ES=1373 SS=1373 CS=1373 IP=0103 NV UP EI PL NZ NA PO NC 1373:0103 BA2211 MOV DX,1122 -T
AX=3344 BX=0000 CX=0000 DX=1122 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1373 ES=1373 SS=1373 CS=1373 IP=0106 NV UP EI PL NZ NA PO NC 1373:0106 058877 ADD AX,7788 -T
AX=AACC BX=0000 CX=0000 DX=1122 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1373 ES=1373 SS=1373 CS=1373 IP=0109 OV UP EI NG NZ NA PE NC 1373:0109 81D26655 ADC DX,5566 -T
AX=AACC BX=0000 CX=0000 DX=6688 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1373 ES=1373 SS=1373 CS=1373 IP=010D NV UP EI PL NZ NA PE NC 1373:010D 0000 ADD [BX+SI],AL DS: ;结果:DX.AX=6688AACCH
五、拓展题:
1、 编写程序段:将DX.AX中的双字右移一位。
2、 编写程序段:将AX寄存器的最低4位置1,最高3位清0,第7、8、9位取反,
其余位不变。设AX中原来的值为0AAH。
3、 设AX=2AH,BX=30H,编写程序段计算:AX/BX,并将结果送BX.CX。
六、实验报告:
1、写出源程序段清单、程序说明、执行结果。
2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
实验三 汇编语言程序的调试与运行
一. 知识点
1、 汇编语言源程序的格式
完整的汇编语言源程序由段组成,即代码段、数据段、附加段和堆栈段。其中,需要独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点。
例如,输出一个字符串的源程序:
.model small ;定义程序的存储模式(小型程序一般采用小模式) .stack ;定义堆栈段 .data ;定义数据段
string db ‘An example.’,0ah,0dh,’$’ ;在数据段中定义要显示的字符串 .code ;定义代码段 .startup ;程序的起始点
lea dx, string ;将字符串的起始地址送dx,即设置入口参数 mov ah, 09h ;设置输出字符串的功能调用号 int 21h ; 功能调用:显示 .exit 0 ;程序结束点,返回dos end ;汇编结束 注:这是简化段定义的程序格式 2、 汇编语言程序的开发过程
一般步骤:编辑、编译、连接、调试运行
(1) 源程序的编辑
源程序文件可以利用任一文本编辑器进行编辑,通常我们用“记事本”。 源程序文件保存时,一般以 .asm为文件的后缀名。 具体实现:如图
在win2000环境下,在“另存为”界面中输入文件全名(example.asm),并且将“保存类型“选择为“所有文件”。
也可以使用.txt后缀名,不过在汇编时要写源文件的全名,否则系统默认的为.asm。
(2) 源程序的汇编、连接
汇编是将源程序翻译成由机器代码组成的目标模块文件的过程。连接程序将一个或多个目标文件和库文件合成一个可执行文件。 MASM6.X提供的ML.EXE可以实现:
先汇编,若没有错误则自动调用LINK.EXE连接程序进行编译;若有错,则提示错误信息,可利用列表文件查看错误所在位置,并改正错误,重新汇编和连接。
例如,设上面的例题程序文件为EXAMPLE.ASM,并且该文件与ML.EXE等文件都在同一目录(设该目录为当前目录)下,则汇编、连接的命令为:
>ML EXAMPLE.ASM
运行结果见实验步骤2。产生:EXAMPLE.OBJ和 EXAMPLE.EXE文件 特别说明:
ML允许汇编和连接多个程序形成一个可执行文件,而且还可以带参数,格式:
ML [/参数选项] 文件列表
常用参数选项有:
/c ——只汇编源程序,不进行自动连接(注意用小写字母c) /Fl 文件名——创建一个汇编列表文件(扩展名LST),用于查找错误。 Sg ——在省城的列表文件中,列出由汇编程序产生的指令
例如:若将字符串的引号改为中文的“‘”后重新用下面命令汇编连接,则结果见实验步骤3。
>ML /Fl EXAMPLE.ASM
(3) 可执行程序的调试
在操作系统提示符下直接输入柯执行文件名即可运行: >EXAMPLE
当出现运行错误时,通常用DEBUG进行调试: >DEBUG EXAMPLE.EXE
然后采用U命令进行反汇编,用T或G命令运行并观察,找出错误所在。
二.实验目的及要求
1.掌握数据定义、段定义的方法
2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。 3、熟悉常见Jcc指令、loop指令的使用。
三.实验内容
编程实现:
1、 求数组array中的20个字元素的和,并存入变量total中。其中,数组元素在定义数
组时以初值的形式给出。
2、 给DX送一个初值,然后判断:若DX的高4位全为0,则使AX=0;否则使AX=-1。 3、 定义一个字符串string,包含若干字符并且以’$’结尾,用程序统计字符的个数。
四、实验步骤
以实验内容1为例,介绍实验步骤:
1、 编辑源程序:在记事本中输入如下程序,并存在E:\\MASM6\\BIN\\EXAM1.ASM中。 2、 汇编、编译: 情况1:没有错误 >ml example.asm
Object Modules [.obj]: example.obj Run File [example.exe]: \
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库余敦辉《汇编语言》实验指导书实验1-实验3在线全文阅读。
相关推荐: