当前位置: 网学 > 编程文档 > 汇编语言 > 正文

汇编语言上机指导及例示

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式
行程序(如地址缺省从当前CS:IP开始),运行至[断点地址1]停止,显示所有寄存器及标志位内容与下一条指令,如后面还有断点,可键入g,继续执行。
示例:-g001a 则执行从当前cs:ip至001a的指令
注意:地址设置必须从指令的第一字节设起。

4)T(Trace)执行一条语句
格式: -t [=地址] 从指定[地址]起执行一条语句后停下来,显示所有寄存器内容及标志位的值与下一条指令。如[地址]缺省则从当前CS:IP开始执行
-t [=地址][value] 从指定地址起执行value条指令后停止。

5)P(proceed)执行一个循环;一个软中断或call子过程
格式:-p [=地址][n]
示例: mov ah,02h
mov dl,41h
int 21h
此时用: -p 回车后系统将显示一个字符A,如果在这不用P,而改用T,那么系统将进入INT 21H的中断调用中,出不来,这时你会误以为你的程序编错了,一定注意!!

6)R(register)显示并可修改寄存器内容
格式:-r 显示所有寄存器内容
-r 寄存器名 修改指定寄存器内容(可改:AX,BX,CX,DX,SP,
BP,SI,DI,CS,DS,ES,SS,PC,IP,F)

7)U(Unassemble)反汇编
格式:-u [地址] 从指定[地址]反汇编32个字节,若[地址]缺省则从当前地址汇编32个字节。
-u 地址范围 对指定范围内的存储单元进行反汇编

以上是在调试程序中可能用到的DEBUG命令解释,DEBUG中还有其它命令,在检查程序中不会用到,就不再介绍了。

PROCEDURE g:程序编好,那就一切OK!!!交卷过关了!大吃、大睡。

下面给出一个有病句的程序,希望大家和我一起调试、修改并通过:
先执行PROCEDURE a编辑源程序
实现功能:在屏幕上显示:Hello world
My name is DJX
文件名:error.asm
行号: 源程序代码:

1 data segment
2 out1 db ''Hello world''
3 ax db ''My name is DJX''
4 data ens
5
6 code segment
7 assume cs:code;ds:data
8 lea dx,out1
9 mov ah,2
10 int 21h
11
12 mov dl,0ah
13 mov ah,2
14 int 21h
15 mov dl,0dh
16 moo ah,2
17 int 21h
18
19 lea dx,ax
20 mov ah,
21 int 21h
22 code ends

在编辑完执行PROCEDURE b用masm进行编译:masm error回车后显示如下:
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

Object filename [error.OBJ]:
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
End of file encountered on input file
error.ASM(23): warning A4085: End of file, no END directive
Open segments: DATA
error.ASM(3): warning A4016: Reserved word used as symbol: AX
error.ASM(4): error A2105: Expected: instruction or directive
error.ASM(16): error A2105: Expected: instruction or directive
error.ASM(19): error A2049: Illegal use of register
End of file encountered on input file
error.ASM(23): warning A4085: End of file, no END directive

51566 + 406450 Bytes symbol space free

2 Warning Errors
4 Severe Errors

说明这个程序有错误,并在第3,4,16,19,23行有错,
我们再执行PROCEDURE c去逐一检查
第三行:3 ax db ''My name is DJX''
它的错误在于AX不能作为变量名,更正:
3 out2 db ''My name is DJX''
注意刚才我们定义AX为变量时在后面的程序中用过''变量AX''在第19行
19 lea dx,ax
在出错报告中也报第19行错,因为不能将AX的有效地址赋给DX,更正:
19 lea dx,out2
这样一下就解决了两个错误
第四行:4 data ens
这行为一个段的结束,但语句漏打了字母,更正:
4 data ends
第十六行:16 moo ah,2
这行也是语句打错,更正:
16 mov ah,2
第二十三行:
出错信息:error.ASM(23): warning A4085: End of file, no END directive
说明本程序没有结束伪操作,更正:
加入:在第七、八行加入地址标志: start:
原23 end start

执行PROCEDURE a将源程序修改如下:

data segmen

  • 下一篇资讯: TASM V5.0安装及注意事项
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号