汇编上机说明书Word格式文档下载.docx
- 文档编号:8272897
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:16
- 大小:27.04KB
汇编上机说明书Word格式文档下载.docx
《汇编上机说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汇编上机说明书Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。
此时输入相应的库文件名字即可。
4.运行
通过汇编和链接,最终形成的可执行文件已经排出了程序中的语法错误,可以直接执行。
但是可能还存在一些算法错误,这样的错误则要通过调试过程来修正。
常用的调试工具软件有DEBUG等。
5.汇编语言上机举例
例编写一个名字为ABCD.ASM的源程序,该程序的功能是在计算机屏幕上显示一个字符串“HELLO!
”。
1)编辑源程序
利用Windows2000操作系统附件中的“记事本”编辑如下源程序。
DATASEGMENT
S1DB'
HELLO!
'
'
$'
DATAENDS
STACKSEGMENTPARASTACK
DB64DUP(?
)
STACKENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAH,09H
MOVDX,OFFSETS1
INT21H
RET
MAINENDP
CODEENDS
ENDSTART
2)汇编
在MASM5.0中的汇编程序是MASM.EXE。
其命令格式为:
C:
〉MASMABCD.ASM¿
执行上述操作命令之后将在屏幕上显示如下信息:
Microsoft(R)MacroAssemblerVersion5.00
Copyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved
Objectfilename[ABCD.OBJ]:
¿
Sourcelisting[NUL.LST]:
Crossreference[NUL.CRF]:
50678+410090Bytessymbolspacefree
0warningErrors
0SevereErrors
在汇编过程中产生了三个文件,其默认的文件名显示在屏幕上,如果不需要做任何改变就直接按Enter键。
通过屏幕上的显示,可以了解到在本次汇编过程中没有发生错误和警告,因此可以继续进行链接操作。
3)链接
在MASM5.0中的汇编程序是LINK.EXE。
〉LINKABCD¿
执行上述命令后将在屏幕上显示如下信息:
Microsoft(R)OverlayLinkerVersion3.6
Copyright(C)MirosoftCorp1983-1987.Allrightsreserved
RunFile[ABCD.EXE]
ListFile[NUL.MAP]:
Libraries[.LIB]:
在链接过程中产生了两个文件,其默认的文件名显示在屏幕上,如果不需要做任何改变就直接按Enter键。
对于库文件一栏,如果不需要使用库文件,可以直接按Enter键;
如果需要使用库文件,则要求输入所使用的库文件名字。
4)运行
〉ABCD¿
在屏幕上就可以看到“HELLO!
”的字样了。
1.2.2调试工具软件DEBUG
如果汇编语言的源程序中存在一些语法或格式上的错误,在汇编和链接过程中都可以被发现并得到纠正。
但是如果在源程序中存在着算法错误和逻辑错误,那就只有在调试过程中才能发现并纠正了。
常用的调试工具软件是DEBUG。
DEBUG提供了修改寄存器和内存单元内容的命令,可以很方便地修改寄存器、内存单元的内容,为调试程序、修改程序带来了方便。
在DEBUG状态下,还提供了调试、控制测试的环境。
用户可以在此环境下进行编辑、调试和执行等一些简单的汇编程序。
DEBUG有显示命令,通过显示命令,可以观察某个内存单元的内容、CPU内部某个寄存器的内容,并可以根据这些内容的变化情况分析、调试程序。
1.DEBUG的启动
假设在Windows2000的环境下,通过选择“程序”→“附件”→“命令提示符”进入DOS状态。
然后输入:
Debug
[[drive:
][path]
filename
[parameters]]即可进入DEBUG环境。
其中,[drive:
][path]filename:
指定要测试的可执行文件的位置和名称。
[parameters]:
指定所需要的命令。
如果已经进入存放DEBUG文件的目录下,则可以使用简化的命令进入DEBUG。
简化命令的格式为:
Debug¿
。
进入DEBUG后,显示DEBUG的提示符号,该提示符号为连字符
(-)。
2.DEBUG的主要命令
这里只介绍常用到的几个主要DEBUG命令,全部的DEBUG命令请参考相关文献。
1)A(汇编命令)
该命令的功能是从汇编语言程序语句创建可执行的机器码。
所有数值都是十六进制格式,必须按1~4个字符输入这些数值。
命令格式:
Aaddress
参数address是指定输入汇编语言指令的位置。
对
address
使用十六进制值,但是输入十六进制地址时不能以h字符结尾。
如果不指定地址,执行A命令后将在它上次停止处的地址开始汇编。
A命令使用举例如下。
-A0100:
0500
0100:
MOVAL,05
0502
JMP
NEAR
505
0505
FAR
50A
M
2)C(比较命令)
该命令的功能是比较内存的两个区域存放的内容。
命令格式为:
Crange
address
参数range指定要比较的内存第一个区域的起始和结束地址,或起始地址和长度。
参数address指定要比较的第二个内存区域的起始地址。
C命令使用举例如下。
-C100,10F
300
该命令对
100h~10Fh
的内存数据块与300h~30Fh的内存数据块进行比较。
响应前面的命令并显示如下信息(假定此时
DS
=
197F):
197F:
0100
4D
E4
0300
0101
67
99
0301
0102
A3
27
0302
0103
35
F3
0303
0104
97
BD
0304
0105
04
0305
0107
76
71
0307
0108
E6
11
0308
0109
19
2C
0309
010A
80
0A
030A
010B
36
7F
030B
010C
BE
22
030C
010D
83
93
030D
010E
49
77
030E
010F
4F
8A
030F
注意:
列表中缺少地址197F:
0106和197F:
0306,这表明地址中的数据值是相同的。
3)D(显示内存命令)
该命令的功能是显示一定范围内存地址的内容。
D
[range]
参数range指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。
如不指定range,将从以前D命令中所指定地址范围末尾开始显示128字节的内容。
D命令举例如下。
-DCS:
100
10F
Debug按以下格式显示范围中的内容:
04BA:
54
00
53
41
57
59-45
52
TOM.SAWYER...
...
当使用D命令时,Debug以两个部分显示内存内容:
十六进制部分(每个字节的值都用十六进制格式表示)和ASCII码部分(每个字节的值都用
ASCII
码字符表示)。
每个非打印字符在显示的
部分由英文句号(.)表示。
每个显示行显示
16
字节的内容,其中在第8和第9字节之间有一个连字符。
每个显示行从
字节的边界上开始。
4)G(运行命令)
该命令功能是运行当前在内存中的程序。
G
[=address]
[breakpoints]
参数address指定当前在内存中要开始执行的程序地址。
如果不指定
address参数,将从CS:
IP寄存器中的当前地址开始执行程序。
参数breakpoints为G命令设置的临时断点。
如果命令中有指定断点参数,则程序在遇到的第一个断点处停止,当程序到达断点时,Debug
将显示所有寄存器的内容、所有标记的状态以及最后执行指令的解码形式。
5)Q(退出命令)
该命令功能是该停止
会话,返回到命令提示符。
Q
参数:
无。
6)R(寄存器显示命令)
该命令功能是显示或改变一个或多个
CPU
寄存器的内容。
R
[register-name]
如果在没有参数的情况下使用,则
命令显示所有寄存器的内容以及寄存器存储区域中的标志。
register-name
指定要显示其内容的寄存器名。
举例如下。
要查看所有寄存器的内容、所有标记的状态和当前位置的指令解码表,请输入以下命令:
R
如果当前位置是
011A,显示结果将类似如下:
AX=0E00
BX=00FF
CX=0007
DX=01FF
SP=039D
BP=0000
SI=005C
DI=0000
DS=04BA
ES=04BA
SS=04BA
CS=O4BA
IP=011A
NV
UP
DI
NG
NZ
AC
PE
NC
011A
CD21
INT
21
如果只想查看标志的状态,请输入以下命令:
RF
Debug按以下格式显示信息:
-
_
7)T(跟踪命令)
该命令功能是执行一条指令,并显示所有寄存器的内容、所有标志的状态和所执行指令的源代码形式。
T
[number]
参数=address指定Debug启动跟踪指令的地址。
如果省略address参数,跟踪将从当前CS:
IP寄存器所指定的地址开始。
参数number指定要跟踪的指令数。
该值必须是十六进制数,默认值为1。
要执行一个指令(CS:
IP
指向的指令),然后显示寄存器的内容、标志的状态以及指令的解码形式,请输入以下命令:
T
如果程序中的指令位于
011A,Debug
可能显示下列信息:
8)U(反汇编命令)
该命令功能是反汇编字节并显示相应的原语句,其中包括地址和字节值。
反汇编代码像已汇编文件的列表。
U
[range]
参数无。
如果在没有参数的情况下使用,则U命令将反汇编20H字节的内容(默认值),从前面U命令所显示地址后的第一个地址开始。
参数range指定要反汇编代码的起始地址和结束地址,或起始地址和长度。
要反汇编16(10h)字节,从地址
开始,请输入以下命令:
U04ba:
010010
按以下格式显示结果:
206472
AND
[SI+72],AH
69
DB
7665
JBE
016B
0106
207370
[BP+DI+70],DH
65
63
66
61
1.3汇编语言上机实验
实验1.1设数据段字节变量S0中存放一个非压缩型BCD码,将其转为ASCII码,并显示在屏幕上。
1.分析
所谓非压缩BCD码就是每字节只存放一个BCD码,该字节的低4位为BCD码,而高4位为0000。
BCD码不能直接用于屏幕显示和打印,必须将其转换为ASCII码。
非压缩BCD码转换为ASCII码的算法很简单,就是在非压缩BCD码上加上30H。
2.实验步骤
(1)调用文本编辑软件建立源程序.ASM文件。
利用Windows2000操作系统附件中的“记事本”编辑以下源程序。
命名为Test1.ASM。
S0DB1;
待显示的BCD码
CODESEGMENT
MOVSS,AX
MOVAL,S0
ADDAL,30H
MOVDL,AL
MOVAH,02H
CODEENDS
(2)调用汇编程序MASM对源程序汇编产生.OBJ文件。
在C:
>
提示符下输入MASMTest1.ASM¿
Objectfilename[Test1.OBJ]:
(3)调用链接程序LINK对目标文件进行链接产生可执行文件。
提示符下输入LINKTest1¿
Copyright(C)MicrosoftCorp1983-1987.Allrightsreserved
RunFile[Test1.EXE]
(4)运行可执行文件。
提示符下输入Test1¿
,在屏幕上将显示出1。
(5)改变S0的内容(数字范围要限制在0~9之间),重新做这个实验。
实验1.2设数据段变量S1中存放一个小写英文字符'
A'
,要求将其转为大写英文字符,并显示在屏幕上。
试编写一段程序并运行该程序从而完成上述要求。
提示:
小写英文字符的ASCII码和大写英文字符的ASCII码之间存在一个差值。
1.4应用DEBUG软件调试程序实验
实验1.3常用的DEBUG命令使用练习。
实验步骤
1)进入DEBUG环境
在Windows2000环境下,按顺序选择“开始”→“程序”→“附件”→“命令提示符”后进入DOS环境,输入DEBUG后即可进入DEBUG,此时屏幕上显示“_”提示符号。
2)A(编辑命令)使用练习
用DEBUG的A命令输入程序。
_A100¿
0357:
0100MOVAL,34
0102MOVDL,36
0104ADDDL,AL
0106SUBDL,32
0109MOVAH,2
010BINT21
010DINT20
010F¿
输入A命令时,自动产生程序所存内存单元的段地址和偏移地址。
程序输入结束时,只需输入Enter键就可以退出汇编状态(A状态),回到DEBUG状态。
使用A命令时,只要注意起始地址的偏移地址从0100开始即可。
至于前面的段地址是随机变化的(取决于当前内存使用情况),对此不必介意。
3)C(比较命令)使用练习
首先利用A命令输入以下内容。
0109MOVAL,34
010BMOVDL,36
010DADDDL,AL
010FSUBDL,30
0112¿
然后利用C命令对0100~0108与0109~0112两个区域内存存放的内容进行比较。
-C100,108
109
该命令执行后将显示两块存储区域存放内容不一致的那些单元。
4)D(显示内存命令)使用练习
0100DW0100
0102DW0302
0104DW0504
0106DW0706
0108DW0908
010ADW0B0A
010CDW0D0C
010EDW0F0E
0110
之后利用D命令查看该区域内容。
_D100
5)R(寄存器显示命令)使用练习
0102MOVAH,36
0104MOVBL,AL
0106MOVBH,32
0108MOVCL,55
010AMOVCH,AA
010CMOVDL,AL
010EMOVDH,30
利用运行命令G运行,G=100,110
使用R命令看各寄存器结果(与R命令相结合做练习)。
利用R命令分别查看AX、BX、CX、DX、AL、AH、BL、BH、CL、CH、DL和DH内容。
利用R命令将AX、BX、CX和DX的内容都改为55AA。
6)G(运行命令)使用练习
然后执行运行命令:
G=100,10E。
之后使用R命令查看有关寄存器内容。
7)T(跟踪命令)使用练习
然后执行T=100,1命令。
观察程序运行情况和指令执行后寄存器的变化情况。
再执行T=100,2观察程序运行结果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 上机 说明书