80X86汇编程序设计实验教程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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 ⑸

文档评论(0)

9885fp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档