汇编语言编译调试帮助

时间:2025-03-13

汇编语言编译调试帮助

汇编语言的源代码是文本格式的,可以使用记事本编写,打开记事本,输入代码:

代码如下:

;test.asm by xecle

data segment

mesg1 db 'what is your name?',0dh,0ah,'$' mesg2 db 'Hello ','$' buff db 20,? db 20 dup(?) data ends

;------------------------------------------ stack segment para stack dw 10h dup(0) stack ends

;------------------------------------------ code segment assume cs:code,ds:data,ss:stack main: mov ax,data mov ds,ax mov es,ax mov ax,stack mov ss,ax

output:

mov dx,offset mesg

mov ah,09h int 21h

input: mov dx,offset buff mov ah,0ah int 21h

Chello: mov dx,offset mesg2 mov ah,09h int 21h mov dx,offset buff add dx,2 int 21h

m_end: mov ah,4ch int 21h code ends end main

由以上示例代码可见,汇编文件共分为三个段,分别为数据段,堆栈段,代码段,其中代码段必须有,在代码段末尾由end lable指出程序的入口地址lable,若程序没有定义数据段或者堆栈段,连接时会提示waring ,若程序中确实没有用到,可不用理会。

编译汇编文件使用的是masm,也可以使用tasm,此处以masm为例,首先需要现在masm,自己解决,然后解压缩,假设解压缩后位置为d:\masm\,(建议放在某个盘的根目录下面,会方便很多,另外文件夹名称最好不要用中文),然后桌面左下角点开始》附件》命令提示符,或者开始》运行,输入cmd回车,这样可以打开命令行:

Xp系统显示的内容应该会略有不同,因为我是win7系统,然后进入masm的文件夹, 输入d:回车(用搜狗输入法的注意输入状态必须是英文^_^),然后输入cd masm进入masm文件夹,cd表示进入目录,cd ..表示返回到上一层目录:

把刚才写好的汇编文件test.asm拷到masm这个文件夹里面,然后在命令行输入编译命令:masm test.asm;回车,

这里显示的语法错误,上面几行有提示错误位置,回到源文件更改,把24行处mesg改为mesg1,重新编译,没有错误,编译输出的为.obj文件,本例中输出为test.obj。

连接是把编译好的二进制文件按照可执行文件格式进行打包。输出文件为.exe文件。连接命令为:link test.asm;回车,如果程序中没有数据段或者堆栈段定义,此时会提示waring,如果确实不用到数据段或者堆栈段,则不用理会:

然后输入test回车运行test.exe程序:

按照提示输入姓名,回车,

可以看见输出,输入自己消失了。 调试程序使用TD,TD是turbo公司的调试器,全程turbo debuger,跟debug的功能一样,不过TD有图形界面,支持鼠标,所以使用简单。 把TD解压到mams文件夹,输入TD启动。

点击OK或者按回车,用鼠标把蓝绿色区域的左下角拖到最大:

用鼠标点file>open,然后选择要调试的test程序,就可以载入程序,TD界面中各部分从上到下,从左到右分别为:菜单、代码窗口、寄存器窗口、标志位窗口、内存窗口、堆栈窗口,各个分窗口均有右键功能,需要先左键单击激活相应窗口,然后用右键召出菜单,其中堆栈段窗口右键单击位置需位于字母SS上或左边,若在堆栈偏移地址或堆栈数据上右键单击则不要松开右键,按下右键为出现菜单,松开为选择相应功能。 TD支持断点和单步,等常用调试功能,

还支持内存断点和标志位触发等高级调试功能,

具体请查看相应菜单(不认识的单词自己查),菜单后附有快捷键可以加速输入:

TD与TC均属于turbo公司产品,因此功能很类似,可以参考TC操作。Help文件里面可以找到帮助文件。 常用功能: 1、 断点

断点位于breakpoints菜单,常用断点为代码断点,在代码窗口找到相应代码行,打击选中,按breakpoints菜单中Toggle或者直接按快捷键F2触发断点,同一行再次触发断点则会取消断点。设置断点后可以用run菜单中的run运行到断点处,如果嫌断点太麻烦,可以直接选中需要停止的代码行,然后运行run菜单中的go to cursor,运行到光标所在行停止。 2、 单步

每次执行一行代码,寄存器、标志位、堆栈、内存窗口中在本步发生变化的值会以白色显示。 3、 查看内存

激活内存窗口,拖动滑块查看,其中内存窗口左半部分为十六进制,右半为对应的ASCII码,这对查看字符串变量很有帮助。

内存窗口常用查看方式为右键中go to……,然后输入要查看的地址,如ds:bx、ds:0000、1234:4321等合法的地址表达式。

4、 查看表达式

View菜单中的watchs看以查看合法表达式的值,首先VIEW》wachs召出watch窗口, 然后右键》edit…,输入监视的表达式值:

任何合法的表达式均可以被监视:

输入完毕按回车或单击OK,watch可以同时查看5个表达式的值,单击代码窗口并运行到适当位置,然后通过菜单召出watch窗口,即可查看所监视的表达式。

其他操作或其他问题请google或者联系我。

2009/6/13

xecle

…… 此处隐藏:409字,全部文档内容请下载后查看。喜欢就下载吧 ……
汇编语言编译调试帮助.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219