- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1 汇编语言程序的运行方式
汇编编语言是面向机器的低级语言,它的每条指令都是机器指令的助记符,其上机运行的方式常有两种:
一是在借助程序调试工具DEBUG,编写小的汇编语言程序,直接在DEBUG环境下运行之。
二是借助文本编辑器编写汇编语言源程序,然后借助汇编器汇编生成目标代码,再连接生成可执行文件,在命令行(或命令提示符)下运行之。
1.1在DEBUG下运行汇编程序
在MS-DOS、WINDOWS 98、WINDOWS 2000和WINDOWS XP中都提供有程序调试工具DEBUG,其文件名是DEBUG.EXE,可以在命令提示符“ ”下运行之。在进入DEBUG的提示符“-”之后,用户可以通过DEBUG的汇编命令输入汇编语言源程序,并将其汇编成机器语言程序加载存储到指定的地址空间,然后便可运行、调试输入的程序。
使用DEBUG运行汇编语言程序简单方便,但只能编写仅含一个代码段的小型程序,这对学习汇编语言的指令,了解、熟悉指令的功能带来极大的方便。
例1.1 在DEBUG下运行如下程序:
mov dl,33h ;字符“3”的ASCII码送dl mov ah,2 ;使用INT 21H的2号功能 int 21h ;进入功能调用,输出“3” int 20h ;BIOS中断,结束当前程序,返回程序系统
该程序运行结果是在显示器上输出一个字符“3”。如果要输出其它字符,可以改变程序中送输入dl中的ASCII码。下面我们给出在WINDOWS XP下运行该程序的步骤: 图1 命令指符窗口
⑴进入DEBUG 运行附件下的命令提示符,如图1所示。在提示符下输入DEBUG,即: C:\ debug
屏幕显示符“-”。
注:“ ”表示按回车键。
⑵输入程序并汇编
在DEBUG的指示符下用汇编命令a输入并汇编程序:
-a 100
0B25:0100 mov dl,33
0B25:0102 mov ah,2
0B25:0104 int 21
0B25:0106 int 20
0B25:0108
⑶运行程序 用命令g运行输入的程序:
-g 100
3
Program terminated normally
说明:程序输入汇编完成后,可以生成一个在命令指示下直接运行的.com文件,然后在命令提示符下运行。生成.com文件的条件是程序的起始偏移地址是0100H。具体操作如下:
⑴用DEBUG的n命令为文件命名,在DEBUG提示符下输入:
-n c:\ 文件将存放在C盘根目录下。
⑵用DEBUG的r命令,在bx|cx中写入文件的总字符数,在DEBUG提示符下输入:
-rbx BX 0000
:0000
-rcx
CX 0000
:000a
⑶用DEBUG的w命令写文件“c:\”,在DEBUG提示符下输入:
-w Writing 0000A bytes ⑷用q命令退出DEBUG,在操作系统的命令提示符下运行程序: c:\ dsp3 3 c:\ 实际上,在命令提示符下用DOS命令dir可以在查看到文件“”。
1.2 DEBUG命令
调试程序DEBUG的特点:
在受控环境中测试程序;
装入显示修改任何文件;
执行DOS程序;
完成磁盘读写操作;
建立或汇编汇编语言程序。
DEBUG的命令格式
[drive:][path] DEBUG [d:][p][filename][.exe][param...]
其中:
drive:是指定DEBUG文件的磁盘驱动器标识符,DEBUG是外部命令,所以必须把它从磁盘读入内存。若未指定,将使用当前默认磁盘驱动器。
path:是查找DEBUG文件的一个子目录串表示的路径。若未指定,DOS将使用当前工作目录。
d:是DEBUG将要调试的文件所在的磁盘驱动器。
p:是查找DEBUG将要调试的文件所需的子目录路径,若未指定,DOS使用当前目录。
filename[.ext]是DEBUG将要调试的文件名。
aram:是将被调试的程序(或文件)的命令行参数。
DEBUG完成初始化,文件,启动DEBUG:
段寄存器CS、DS、ES和SS置为DEBUG程序后的第一个段。
指令指针寄存器IP置为100H(程序段前缀PSP后的第一个语句)。
堆栈指针SP置为段末或COMMAND.COM暂驻部分的结束地址(其中较小的那个地址)。
其余通用寄存器均置为0,标志寄存器置为下述状态
NV??? UP??? EI??? PL??? NE??? NA??? PO??? NC
即:程序状态字的OF 0、DF 0、IF 1、SF 0、ZF 0、AF 0、PF 0、CF 0。
②如果DEBUG命令行含有文件名,段寄存器DS和ES指向PSP。寄存器BXCX为程序长度。-dcs:100 cs:110 ^ Error
⑸
您可能关注的文档
最近下载
- (正式版)DB61∕T 1486.8-2021 《设施茄果类蔬菜水肥一体化技术规范 第8部分:辣椒基质栽培》.docx VIP
- (正式版)DB61∕T 1486.8-2021 《设施茄果类蔬菜水肥一体化技术规范 第8部分:辣椒基质栽培》.pdf VIP
- 《光伏玻璃工艺讲解》课件.ppt VIP
- 迅达扶梯9300ae产品介绍.pdf VIP
- SL747-2016采矿业建设项目水资源论证导则.pdf VIP
- 重症医学科专科护士工作汇报.ppt VIP
- 云南省茶叶出口影响因素的实证研究.docx VIP
- crrt专科护士汇报ppt.pptx VIP
- 毕业设计(论文)-星型发动机设计.docx
- 除尘器噪音标准.pdf VIP
原创力文档


文档评论(0)