问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

masm5.0 debug使用

发布网友 发布时间:2022-04-24 05:34

我来回答

2个回答

热心网友 时间:2023-11-01 07:06

DEBUG 是专门为汇编语言设计的一种调试工具软件,可用来检查、修改寄存器和内存单元
的内容,装入运行程序,汇编及反汇编机器语言程序,可用单步、断点及连续的方式执行程
序。
DEBUG 启动方式:
>DEBUG 文件名.EXE(Enter) ; 回车进入DEBUG状态
- ; "-" 是 DEBUG 提示符
以下是 DEBUG 的基本操作命令
一. A (汇编) 命令
用途: 把计算机的宏汇编语句直接汇编到内存中。
格试: A [address]
说明: A 是一条逐行汇编命令,当使用 A 命令时,并不直接将 16 进制字节,机器码
而键入是助记符,但键入的汇编语言被汇编在指定地址的连续单元中。
在A命令后没指出地址,分两种情况。
没指定地址同时前面没有使用汇编命令,则语句被汇编到 CS:100 开始的区域中
没指定地点,但前面已有汇编命令,则语句被汇编到紧接着前一条汇编语句的后一个地址单
元里。
例:-A
1298:0200 PUSH DS
1298:0201 MOV AX,0000
1298:0204 PUSH AX
1298:0205 MOV AX,128F
1298:0208 MOV DS,AX
1298:020A MOV AX,F000
1298:020D MOV ES,AX 1298:020F MOV SI,FFFE
1298:0212 ES:
1298:0213 MOV AL,[SI]
1298:0215 CMP AL,FC
1298:0217 JNZ 0223
1298:0219 LEA DX,[006B]
1298:021D CALL 024B
二. C(比较)命令
用途: 比较两个内存的内容。
格式: C range address
说明: 比较两个内存的内容,比较长度由 range 决定,若发现不等的字节,按下列格式显示
它们的内容。
例:-D 100
33E2:0100 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
33E2:0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
-D 200
33E2:0200 74 68 65 20 6B 69 6E 64-20 6F 66 20 6D 69 63 72
33E2:0210 6F 20 63 6F 6D 70 6E 74-65 72 20 69 73 20 41 54
-C 0100 L08 0200 ;比较100H和200H开始的八个字符。
33E2:0100 00 74 33E2:0200 ;显示不同的字符。
33E2:0101 00 68 33E2:0201
33E2:0102 00 65 33E2:0202
33E2:0103 00 20 33E2:0203
33E2:0104 00 6B 33E2:0204
33E2:0105 00 69 33E2:0205
33E2:0106 00 6E 33E2:0206
33E2:0107 00 64 33E2:0207 三. D(显示)命令
用途: 显示部分存储区的内容。
格式: D [range]或 D [address]
说明: 显示指定内存单元的内容。
⑴ 在输入的起始地址中,只键入一个相对偏移量,段地址为 DS 中。
例:-D
1298:0200 1E B8 00 00 50 B8 8F 12-8E D8 B8 00 F0 8E C0 BE
1298:0210 FE FF 26 8A 04 3C FC 75-0A 8D 16 6B 00 E8 2B 00
1298:0220 EB 28 90 3C FD 75 0A 8D-16 46 00 E8 1D 00 EB 1A
⑵ 若要显示指定范围的内容,则要输入显示的圃橡始和结束地址。
例:-D 0200 027F
125F:0200 00 42 34 00 00 00 00 00-00 00 00 00 00 00 00 00
125F:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
125F:0270 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
⑶ 如果没有指定地址,则从上一次的 D 命令最后一个单元开始显示。
四. E(修改)命令
用途: 修改RAM区单元的内容。
格式: E address[List]
说明: 该命令可以在指定的地址里修改一个或多个字节的内容,同时也可连续的修改每个字
节的内容。
⑴ 连续修改每个字节的内容。
例:-E 0200
125F:0200 00.12 00.13 00.14 00.15 00.16
⑵ 用给定的内容去代替指定范围的内存单元内容。
例:-E 0200 'the kind of micro compnter is AT'
-D 200
33E2:0200 74 68 65 20 6B 69 6E 64-20 6F 66 20 6D 69 63 72 the kind of micr 33E2:0210 6F 20 63 6F 6D 70 6E 74-65 72 20 69 73 20 41 54 o compnter is AT
⑶ 输入一个连接号"-",则显示前一个地址单元的内容。
例:-E 0200
125F:0200 12.- ;200单元不修改,键入"-"。
125F:01FF 13.AC- ;AC代替13。
-D 01FE 0200
125F:01FF AC 12
五. F(填充)命令
用途: 把表中的值,填到内存单元中。
格式: F range List
说明: 如果 List 所含的字节数比 range 小,则 List 被重复使用,
如 List 所含的字节数比 range 大,则 List 多余被略去。
例:-D 0200 0210
33E2:0200 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
33E2:0210 00
-F 0200 L0a'abcdefghij'
-D 0200 0210
33E2:0200 61 62 63 64 65 66 67 68-69 6A 00 00 00 00 00 00 abcdefghij
33E2:0210 00
六. G(执行)命令
用途: 执行需运行的程序,并对调试的程序进行断点测试跟踪。
格式: G[=address][address[address..]
说明: 程序从当前指令开始执行,执行的地址由 CS 和 IP 的内容决定。如用"=address"
参数取代,则程序从 CS:"=address" 开始执行。
-G ;从IP=0200开始执行,结果显示在屏幕上。
the kind of micro compnter is AT Program terminated normally
-G 0252 ;程序从0200H单元开始执行,在0252H处设置一个断点。
AX=0000 BX=0000 CX=04E2 DX=0000 SP=0200 BP=0000 SI=0000 DI=0000
DS= 125F ES=125F SS=126F CS=1298 IP=0200 NV UP EI PL NZ NA PO NC
1298:0252 CB RETF
-
* 注意:一旦程序运行结束( DEBUG 显示"program terminated normally"信息),
⑴ 再次执行,必须重新启动程序。
⑵ 地址参数指向的位置必须含有合法的 8086/8088 指令码。
⑶ 堆栈指标器必须是合法的。
⑷ 对断点只键入一个偏移量,G 命令设该断在CS寄存器中。
七. H(16进制运算)命令
用途: 对两个十六进制数进行加、减,然后显示出和与差。
格式: H Value Value
例:- H A B
0015 FFFF ;和为15H ,差为 FFFFH
-H 12 30
0042 FFE2 ;和为42H ,差为 FFE2H
八. M(传送)命令
用途: 把由 range 规定的内存单元区域的内容传送到 address 开始的单元。
格式: M range address
说明: 传送期间总是执行复盖传送,源区域的数据保持不变。
-Dcs:0000 000f
1298:0000 1E B8 00 00 50 B8 8F 12-8E D8 B8 00 F0 8E C0 BE
-Dds:0000 0010
125F:0000 CD 20 00 A0 00 9A F0 FE-1D F0 F4 02 94 0E 2F 03 -Mcs:0000 l10 ds:0000
-Dds:0000 000f
125F:0000 1E B8 00 00 50 B8 8F 12-8E D8 B8 00 F0 8E C0 BE
-q
九. N(命名)命令
用途: 给文件定名,用于文件存盘或装入内存区。
格式: N filespec[filespec...]
-N A.COM ;给文件命名为A,扩展名为COM。
-L ;把A.COM文件装入内存。
-U ;用反汇编检查装入内存的程序正确否。
1298:0200 1E PUSH DS
1298:0201 B80000 MOV AX,0000
1298:0204 50 PUSH AX
1298:0205 B88F12 MOV AX,128F
1298:0208 8ED8 MOV DS,AX
1298:020A B800F0 MOV AX,F000
1298:020D 8EC0 MOV ES,AX
1298:020F BEFEFF MOV SI,FFFE
1298:0212 26 ES:
1298:0213 8A04 MOV AL,[SI]
1298:0215 3CFC CMP AL,FC
1298:0217 750A JNZ 0223
1298:0219 8D166B00 LEA DX,[006B]
1298:021D E82B00 CALL 024B
十. Q(退出)命令
用途: 退出 DEBUG状态。 格式: Q
说明: Q命令不保留正在内存中运行的文件,若保留需用 "W" 命令, DEBUG返回
到命令处理程序,然后显示出正常的命令提示。
-Q
> ;回到DOS下
十一. R(寄存器)命令
用途:显示和修改各寄存器的内容。
格式:R[Register name]
说明:当 R 命令后面不带任何参数时,显示出 13 个 16 位寄存器的内容,同时又显示
出标志寄存器各位状态,最后显示出下一条要执行的指令内容。
当R命令后面带参数时,显示出该寄存器的内容,同时又可进行修改。
例:-R
AX=0000 BX=0000 CX=04E2 DX=0000 SP=0200 BP=0000 SI=0000 DI=0000
DS=125F ES=125F SS=126F CS=1298 IP=0200 NV UP EI PL NZ NA PO NC
1298:0200 1E PUSH DS
-R AX ;显示AX寄存器的内容。
AX 0000
:0200 ;用0200取代0000,AX的当前值。
-RAX
-AX 0200
:
-R F
NV UP EI PL NZ NA PO NC - OV EI ZR ;修改NVEI,NZ标志位。
标志寄存器共有九个标志位,其中追踪标志 T 不能改变,其它八个标志位可以显示和修改,
并且以二个字母的带码来分别表示各位状态。
十二. S(检索)命令
用途: 在指定的 Range 范围内找到 List 规定的字符。 格式: S range List
说明: 显示出符合规定字符处的地址,如显示提示符 "-",则表示没有发现规定字符。
-D 0200 0220
33E2:0200 61 62 63 64 65 66 67 68-69 6A 00 00 00 00 00 00
33E2:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
33E2:0220 00
-S 02 0220 60 ;在0200H单元,到0220H单元内,查询60H字符。
- ;没有检索到,出现"-"。
-D 0200 0220
125F:0200 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
125F:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
125F:0220 00
-S 0200 0205 00 ;查询为00H的字符。
125F:0200
125F:0201
125F:0202
125F:0203
125F:0204
125F:0205 ;显示出查询到为00H的字符。
十三. T(跟踪)命令
用途: 执行以 CS:IP 中指定开始的一个或几个指令,并显示出执行每条指令后所有寄存器的
内容。
格式: T[=address][Value]
说明: T 命令可以单条跟踪执行每一条指令,也可以由命令中Value诀定执行几条指令,每执
行一条指令,IP 就自动指向下一条指令的地址。为了改变程序的起始地址,可以修改 IP 的
内容,使程序不按正常顺序执行。
-T
AX=0000 BX=0000 CX=04E2 DX=0000 SP=01FE BP=0000 SI=0000 DI=0000 DS=125F ES=125F SS=126F CS=1298 IP=0201 NV UP EI PL NZ NA PO NC
1298:0201 B80000 MOV AX,0000
-T 2 ;连续执行两条指令。
AX=0000 BX=0000 CX=04E2 DX=0000 SP=01FE BP=0000 SI=0000 DI=0000
DS=125F ES=125F SS=126F CS=1298 IP=0201 NV UP EI PL NZ NA PO NC
1298:0201 B80000 MOV AX,0000
AX=0000 BX=0000 CX=04E2 DX=0000 SP=01FE BP=0000 SI=0000 DI=0000
DS=125F ES=125F SS=126F CS=1298 IP=0204 NV UP EI PL NZ NA PO NC
1298:0204 50 PUSH AX
十四. U(反汇编)命令
用途: 将内存某一区的计器码(目标码),用此命令反汇编为源程序。
格式: U [address]、(U range)
说明: U [address]命令从反汇编规定地址的指令开始,如未规定地址,
则以上一个 U 命令的最后一条指令的地址为下一条反汇编的起始地址,这样就可以进行连续
的反汇编。
例:-U
1298:0200 1E PUSH DS
1298:0201 B80000 MOV AX,0000
1298:0204 50 PUSH AX
1298:0205 B88F12 MOV AX,128F
1298:0208 8ED8 MOV DS,AX
1298:020A B800F0 MOV AX,F000
1298:020D 8EC0 MOV ES,AX
1298:020F BEFEFF MOV SI,FFFE
1298:0212 26 ES:
1298:0213 8A04 MOV AL,[SI]
1298:0215 3CFC CMP AL,FC 1298:0217 750A JNZ 0223
1298:0219 8D166B00 LEA DX,[006B]
1298:021D E82B00 CALL 024B
十五. W(写)命令
用途: 把正在调试的文件写入磁盘。
格式: W [address]
说明: 此命令把指令内存区域中的数据写入文件,一般用 N 命令来命名文件名, BX:CX 置入文
件长度.
-A
1298:0100 PUSH DS
1298:0101 MOV AX,0000
1298:0104 PUSH AX
1298:0105 MOV AX,128F
1298:0108 MOV DS,AX
1298:010A MOV AX,F000
1298:010D MOV ES,AX
1298:010F MOV SI,FFFE
1298:0112
-RBX
BX 0000
:0000
-RCX
CX 0000
:0012 ;文件长度送 BX:CX
-N A.COM ;文件名为 A.COM
-W ;存入磁盘
Writing 0000F bytes -q
十六. O(输入)命令
用途: 向指定的端口输出一个字节。
格式: O prot address byte
例: -O 300 23 ;从 300H 端口输出 23H
十七. L(装入)命令
用途: 把磁盘上的内容装入内存。
格式: L [address]
例: -N A.COM
-L ;把A.COM文件从磁盘装入内存。
-U
1298:0200 1E PUSH DS
1298:0201 B80000 MOV AX,0000
1298:0204 50 PUSH AX
1298:0205 B88F12 MOV AX,128F
十八. I(输入)命令
用途: 从指定的端口显示出输入数据。
格式: I port address
例: -I 300
FF ;从 300H 端口读入 FFH

热心网友 时间:2023-11-01 07:07

-t可以单步运行的

热心网友 时间:2023-11-01 07:07

DEBUG 是专门为汇编语言设计的一种调试工具软件,可用来检查、修改寄存器和内存单元
的内容,装入运行程序,汇编及反汇编机器语言程序,可用单步、断点及连续的方式执行程
序。
DEBUG 启动方式:
>DEBUG 文件名.EXE(Enter) ; 回车进入DEBUG状态
- ; "-" 是 DEBUG 提示符
以下是 DEBUG 的基本操作命令
一. A (汇编) 命令
用途: 把计算机的宏汇编语句直接汇编到内存中。
格试: A [address]
说明: A 是一条逐行汇编命令,当使用 A 命令时,并不直接将 16 进制字节,机器码
而键入是助记符,但键入的汇编语言被汇编在指定地址的连续单元中。
在A命令后没指出地址,分两种情况。
没指定地址同时前面没有使用汇编命令,则语句被汇编到 CS:100 开始的区域中
没指定地点,但前面已有汇编命令,则语句被汇编到紧接着前一条汇编语句的后一个地址单
元里。
例:-A
1298:0200 PUSH DS
1298:0201 MOV AX,0000
1298:0204 PUSH AX
1298:0205 MOV AX,128F
1298:0208 MOV DS,AX
1298:020A MOV AX,F000
1298:020D MOV ES,AX 1298:020F MOV SI,FFFE
1298:0212 ES:
1298:0213 MOV AL,[SI]
1298:0215 CMP AL,FC
1298:0217 JNZ 0223
1298:0219 LEA DX,[006B]
1298:021D CALL 024B
二. C(比较)命令
用途: 比较两个内存的内容。
格式: C range address
说明: 比较两个内存的内容,比较长度由 range 决定,若发现不等的字节,按下列格式显示
它们的内容。
例:-D 100
33E2:0100 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
33E2:0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
-D 200
33E2:0200 74 68 65 20 6B 69 6E 64-20 6F 66 20 6D 69 63 72
33E2:0210 6F 20 63 6F 6D 70 6E 74-65 72 20 69 73 20 41 54
-C 0100 L08 0200 ;比较100H和200H开始的八个字符。
33E2:0100 00 74 33E2:0200 ;显示不同的字符。
33E2:0101 00 68 33E2:0201
33E2:0102 00 65 33E2:0202
33E2:0103 00 20 33E2:0203
33E2:0104 00 6B 33E2:0204
33E2:0105 00 69 33E2:0205
33E2:0106 00 6E 33E2:0206
33E2:0107 00 64 33E2:0207 三. D(显示)命令
用途: 显示部分存储区的内容。
格式: D [range]或 D [address]
说明: 显示指定内存单元的内容。
⑴ 在输入的起始地址中,只键入一个相对偏移量,段地址为 DS 中。
例:-D
1298:0200 1E B8 00 00 50 B8 8F 12-8E D8 B8 00 F0 8E C0 BE
1298:0210 FE FF 26 8A 04 3C FC 75-0A 8D 16 6B 00 E8 2B 00
1298:0220 EB 28 90 3C FD 75 0A 8D-16 46 00 E8 1D 00 EB 1A
⑵ 若要显示指定范围的内容,则要输入显示的圃橡始和结束地址。
例:-D 0200 027F
125F:0200 00 42 34 00 00 00 00 00-00 00 00 00 00 00 00 00
125F:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
125F:0270 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
⑶ 如果没有指定地址,则从上一次的 D 命令最后一个单元开始显示。
四. E(修改)命令
用途: 修改RAM区单元的内容。
格式: E address[List]
说明: 该命令可以在指定的地址里修改一个或多个字节的内容,同时也可连续的修改每个字
节的内容。
⑴ 连续修改每个字节的内容。
例:-E 0200
125F:0200 00.12 00.13 00.14 00.15 00.16
⑵ 用给定的内容去代替指定范围的内存单元内容。
例:-E 0200 'the kind of micro compnter is AT'
-D 200
33E2:0200 74 68 65 20 6B 69 6E 64-20 6F 66 20 6D 69 63 72 the kind of micr 33E2:0210 6F 20 63 6F 6D 70 6E 74-65 72 20 69 73 20 41 54 o compnter is AT
⑶ 输入一个连接号"-",则显示前一个地址单元的内容。
例:-E 0200
125F:0200 12.- ;200单元不修改,键入"-"。
125F:01FF 13.AC- ;AC代替13。
-D 01FE 0200
125F:01FF AC 12
五. F(填充)命令
用途: 把表中的值,填到内存单元中。
格式: F range List
说明: 如果 List 所含的字节数比 range 小,则 List 被重复使用,
如 List 所含的字节数比 range 大,则 List 多余被略去。
例:-D 0200 0210
33E2:0200 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
33E2:0210 00
-F 0200 L0a'abcdefghij'
-D 0200 0210
33E2:0200 61 62 63 64 65 66 67 68-69 6A 00 00 00 00 00 00 abcdefghij
33E2:0210 00
六. G(执行)命令
用途: 执行需运行的程序,并对调试的程序进行断点测试跟踪。
格式: G[=address][address[address..]
说明: 程序从当前指令开始执行,执行的地址由 CS 和 IP 的内容决定。如用"=address"
参数取代,则程序从 CS:"=address" 开始执行。
-G ;从IP=0200开始执行,结果显示在屏幕上。
the kind of micro compnter is AT Program terminated normally
-G 0252 ;程序从0200H单元开始执行,在0252H处设置一个断点。
AX=0000 BX=0000 CX=04E2 DX=0000 SP=0200 BP=0000 SI=0000 DI=0000
DS= 125F ES=125F SS=126F CS=1298 IP=0200 NV UP EI PL NZ NA PO NC
1298:0252 CB RETF
-
* 注意:一旦程序运行结束( DEBUG 显示"program terminated normally"信息),
⑴ 再次执行,必须重新启动程序。
⑵ 地址参数指向的位置必须含有合法的 8086/8088 指令码。
⑶ 堆栈指标器必须是合法的。
⑷ 对断点只键入一个偏移量,G 命令设该断在CS寄存器中。
七. H(16进制运算)命令
用途: 对两个十六进制数进行加、减,然后显示出和与差。
格式: H Value Value
例:- H A B
0015 FFFF ;和为15H ,差为 FFFFH
-H 12 30
0042 FFE2 ;和为42H ,差为 FFE2H
八. M(传送)命令
用途: 把由 range 规定的内存单元区域的内容传送到 address 开始的单元。
格式: M range address
说明: 传送期间总是执行复盖传送,源区域的数据保持不变。
-Dcs:0000 000f
1298:0000 1E B8 00 00 50 B8 8F 12-8E D8 B8 00 F0 8E C0 BE
-Dds:0000 0010
125F:0000 CD 20 00 A0 00 9A F0 FE-1D F0 F4 02 94 0E 2F 03 -Mcs:0000 l10 ds:0000
-Dds:0000 000f
125F:0000 1E B8 00 00 50 B8 8F 12-8E D8 B8 00 F0 8E C0 BE
-q
九. N(命名)命令
用途: 给文件定名,用于文件存盘或装入内存区。
格式: N filespec[filespec...]
-N A.COM ;给文件命名为A,扩展名为COM。
-L ;把A.COM文件装入内存。
-U ;用反汇编检查装入内存的程序正确否。
1298:0200 1E PUSH DS
1298:0201 B80000 MOV AX,0000
1298:0204 50 PUSH AX
1298:0205 B88F12 MOV AX,128F
1298:0208 8ED8 MOV DS,AX
1298:020A B800F0 MOV AX,F000
1298:020D 8EC0 MOV ES,AX
1298:020F BEFEFF MOV SI,FFFE
1298:0212 26 ES:
1298:0213 8A04 MOV AL,[SI]
1298:0215 3CFC CMP AL,FC
1298:0217 750A JNZ 0223
1298:0219 8D166B00 LEA DX,[006B]
1298:021D E82B00 CALL 024B
十. Q(退出)命令
用途: 退出 DEBUG状态。 格式: Q
说明: Q命令不保留正在内存中运行的文件,若保留需用 "W" 命令, DEBUG返回
到命令处理程序,然后显示出正常的命令提示。
-Q
> ;回到DOS下
十一. R(寄存器)命令
用途:显示和修改各寄存器的内容。
格式:R[Register name]
说明:当 R 命令后面不带任何参数时,显示出 13 个 16 位寄存器的内容,同时又显示
出标志寄存器各位状态,最后显示出下一条要执行的指令内容。
当R命令后面带参数时,显示出该寄存器的内容,同时又可进行修改。
例:-R
AX=0000 BX=0000 CX=04E2 DX=0000 SP=0200 BP=0000 SI=0000 DI=0000
DS=125F ES=125F SS=126F CS=1298 IP=0200 NV UP EI PL NZ NA PO NC
1298:0200 1E PUSH DS
-R AX ;显示AX寄存器的内容。
AX 0000
:0200 ;用0200取代0000,AX的当前值。
-RAX
-AX 0200
:
-R F
NV UP EI PL NZ NA PO NC - OV EI ZR ;修改NVEI,NZ标志位。
标志寄存器共有九个标志位,其中追踪标志 T 不能改变,其它八个标志位可以显示和修改,
并且以二个字母的带码来分别表示各位状态。
十二. S(检索)命令
用途: 在指定的 Range 范围内找到 List 规定的字符。 格式: S range List
说明: 显示出符合规定字符处的地址,如显示提示符 "-",则表示没有发现规定字符。
-D 0200 0220
33E2:0200 61 62 63 64 65 66 67 68-69 6A 00 00 00 00 00 00
33E2:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
33E2:0220 00
-S 02 0220 60 ;在0200H单元,到0220H单元内,查询60H字符。
- ;没有检索到,出现"-"。
-D 0200 0220
125F:0200 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
125F:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
125F:0220 00
-S 0200 0205 00 ;查询为00H的字符。
125F:0200
125F:0201
125F:0202
125F:0203
125F:0204
125F:0205 ;显示出查询到为00H的字符。
十三. T(跟踪)命令
用途: 执行以 CS:IP 中指定开始的一个或几个指令,并显示出执行每条指令后所有寄存器的
内容。
格式: T[=address][Value]
说明: T 命令可以单条跟踪执行每一条指令,也可以由命令中Value诀定执行几条指令,每执
行一条指令,IP 就自动指向下一条指令的地址。为了改变程序的起始地址,可以修改 IP 的
内容,使程序不按正常顺序执行。
-T
AX=0000 BX=0000 CX=04E2 DX=0000 SP=01FE BP=0000 SI=0000 DI=0000 DS=125F ES=125F SS=126F CS=1298 IP=0201 NV UP EI PL NZ NA PO NC
1298:0201 B80000 MOV AX,0000
-T 2 ;连续执行两条指令。
AX=0000 BX=0000 CX=04E2 DX=0000 SP=01FE BP=0000 SI=0000 DI=0000
DS=125F ES=125F SS=126F CS=1298 IP=0201 NV UP EI PL NZ NA PO NC
1298:0201 B80000 MOV AX,0000
AX=0000 BX=0000 CX=04E2 DX=0000 SP=01FE BP=0000 SI=0000 DI=0000
DS=125F ES=125F SS=126F CS=1298 IP=0204 NV UP EI PL NZ NA PO NC
1298:0204 50 PUSH AX
十四. U(反汇编)命令
用途: 将内存某一区的计器码(目标码),用此命令反汇编为源程序。
格式: U [address]、(U range)
说明: U [address]命令从反汇编规定地址的指令开始,如未规定地址,
则以上一个 U 命令的最后一条指令的地址为下一条反汇编的起始地址,这样就可以进行连续
的反汇编。
例:-U
1298:0200 1E PUSH DS
1298:0201 B80000 MOV AX,0000
1298:0204 50 PUSH AX
1298:0205 B88F12 MOV AX,128F
1298:0208 8ED8 MOV DS,AX
1298:020A B800F0 MOV AX,F000
1298:020D 8EC0 MOV ES,AX
1298:020F BEFEFF MOV SI,FFFE
1298:0212 26 ES:
1298:0213 8A04 MOV AL,[SI]
1298:0215 3CFC CMP AL,FC 1298:0217 750A JNZ 0223
1298:0219 8D166B00 LEA DX,[006B]
1298:021D E82B00 CALL 024B
十五. W(写)命令
用途: 把正在调试的文件写入磁盘。
格式: W [address]
说明: 此命令把指令内存区域中的数据写入文件,一般用 N 命令来命名文件名, BX:CX 置入文
件长度.
-A
1298:0100 PUSH DS
1298:0101 MOV AX,0000
1298:0104 PUSH AX
1298:0105 MOV AX,128F
1298:0108 MOV DS,AX
1298:010A MOV AX,F000
1298:010D MOV ES,AX
1298:010F MOV SI,FFFE
1298:0112
-RBX
BX 0000
:0000
-RCX
CX 0000
:0012 ;文件长度送 BX:CX
-N A.COM ;文件名为 A.COM
-W ;存入磁盘
Writing 0000F bytes -q
十六. O(输入)命令
用途: 向指定的端口输出一个字节。
格式: O prot address byte
例: -O 300 23 ;从 300H 端口输出 23H
十七. L(装入)命令
用途: 把磁盘上的内容装入内存。
格式: L [address]
例: -N A.COM
-L ;把A.COM文件从磁盘装入内存。
-U
1298:0200 1E PUSH DS
1298:0201 B80000 MOV AX,0000
1298:0204 50 PUSH AX
1298:0205 B88F12 MOV AX,128F
十八. I(输入)命令
用途: 从指定的端口显示出输入数据。
格式: I port address
例: -I 300
FF ;从 300H 端口读入 FFH

热心网友 时间:2023-11-01 07:07

-t可以单步运行的
masm5.0 debug使用

回答:DEBUG 是专门为汇编语言设计的一种调试工具软件,可用来检查、修改寄存器和内存单元 的内容,装入运行程序,汇编及反汇编机器语言程序,可用单步、断点及连续的方式执行程 序。 DEBUG 启动方式: >DEBUG 文件名.EXE(Enter) ; 回车进入DEBUG状态 - ; "-" 是 DEBUG 提示符 以下是 DEBUG 的基本操作命令...

汇编 利用Masm5.0 得EXE文件 我的电脑 在DOS窗口下怎么都加载运行不了...

第一、cmd 进入dos窗口后,在利用MASM汇编后Debug EXE文件 时 一定要指定好EXE文件所在的准确路径,然后 Debug 要运行的文件名 例如: debug 1.exe第二、如果按上述执行 提示你输入的 “不是内部或外部命令,也不是可运行的程序或批处理文件的话,就一定是你的Windows 环境变量设置有问题。修改方法...

汇编masm 使用方法

使用masm **.asm 命令生成obj文件,link **.obj链接生成exe文件 然后就可以执行了,同样也是确保在文件目录下,使用 **.exe命令,还有就是debug的方法,使用方法类似 debug **.exe 如果电脑不是X86而是x64,那么就需要使用DOSBox工具。安装完成后,打开软件会出现两个界面,在可运行界面会让你先...

为什么我用masm5.0编译汇编源程序时总是出现 unable to open input fil...

假设你的masm程序在e盘(不论哪个文件夹),进入控制台(这个肯定会哈),先键入“e:”,回车;再用cd把masm所在的文件夹路径输入,例如“cd E:\hb”,接下来就可以正常工作了。masm、link、debug神马的都正常运行喽!

用masm编译汇编程序怎么产生OBJ文件和EXE文件

开始--运行--输入cmd,打开的窗口就是模拟的DOS 不是直接打开masm.exe,在DOS下打开 debug用来调试的,使用的方法 debug 文件名.exe 用它把exe文件载入内存,有U命令查看每一条指令 用T命令一步步执行每一条指令,查看寄存器的变化 1、下载个masm5.0(简单,适合初学者),里面至少应包含masm.exe和...

masm5.0debug中D命令显示的内容怎么看

你图上执行是正确的,装载后由于DS没有赋值,D命令显示的DS:0000并不是我们期望的01 02 03,而在你执行了g 10命令后,现在的DS:0000就是我们程序定义的内容了。

masm5.0 edit 和 debug 命令无效

edit和debug在C:\windows\system32下的,找一下有没有这两个文件,如果有,就可以在里面打开,不过在其他地方打不开可能机子的系统环境没有设置好,右键我的电脑-高级-属性-环境变量-系统变量,在下拉列表中找到一个叫path的变量名,如果没有就新建一个变量名 值path C:\windows\system32有...

win7为什么运行不了masm5.0??? 运行masm时,弹出“此文件的版本与正在运...

由于你的操作系统是64位的,这个只能运行在32位系统下。

我是在win7下的cmd模式下用masm5.0编译debug跟踪出问题的.除了年份...

其中,03 00,07 00,09 00,0D 00分别对应dw 3,7,9,13,这是用一个字(2字节)来存数值,数据定义为dw类型。至于为什么右面显示为一些小圆点,道理和上面相同。总结一下,debug右侧所显示的内容是,将左侧每两位二进制数的内容当作ASCII码解读后的结果,如果恰逢不可显示的字符,自然会以一个小...

masm5.0汇编问题,编译过程无错误,但是最后输出无结果

你这个程序,没有屏幕输出显示的代码。所以,运行后屏幕上无显示并直接返回DOS,是对的。若要加上显示部分,代码会比较长。需要先将压缩BCD分离,再转换成ASCII,再显示。你这个程序,是用来练习串指令和BCD码运算的。它正确的用法不是直接运行,而是在调试器DEBUG中调试运行,通过单步、断点等方式检查...

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
世界200米短跑比赛游戏介绍 短跑200米,技巧是什么?求体育达人回复。 地瓜藤生药材鉴定 地瓜藤《中华本草》:地瓜藤 ...疼的要死,蛀的快没了,又不敢拿掉,怕影响其他牙。请问怎么办... 卧室内适合养什么树适合卧室的植物 ...而且牙齿不整齐,而且大牙咀齿面黑黑的,怎么 本人今年14岁,蛀牙时间不详,蛀牙严重, 微信对方撤回了我还能看到吗 一打哈欠左耳里面就疼,是怎么了 前几个星期受过伤 请问“RAM芯片的规格所表示的含义?”到底是什么规格呢?谢谢大家 关于单片机原理的问题 找个高手看看我这个电脑问题出在那?跑鲁大师的分数还不如9600高。 请问文件格式有哪几种? 笔记本升级内存问题(关于8颗粒和16颗粒) 电脑型号 华硕 K550D(电脑外面写着)笔记本电脑,玩使命召唤11很卡,可以装打多大的内存条。配置如下。 MorGain 注册申请码为:Y2R6R-1MV7J-RAM6I-KAJCK,高分求注册认证码。 汽车加油卡怎么办理? 什么是内存的颗粒 中石化的加油卡一车一卡怎么说? 我如果拿着这张卡去自助加油站,加其他车子那么这样要怎么说? 指定车牌号的加油卡,可以为别的车加油吗? 中石化加油卡的道路救援时免费的吗? 我是中石化加油卡的会员,我车子在高速上油不够了,加油站能免费送油过来吗 哥哥妹妹一起剥玉米哥哥拨了十四颗是妹妹的三分之七妹妹拨了多少棵玉米 车辆行驶中有时加不上油是什么原因? 剥的两个读音是什么?分别怎么组词? 绑定车号的油卡,拿着那辆车的行驶证,能给另一辆车加油嘛 余额宝跟理财通哪个好 贵州一大妈去世后,丈夫半夜独自剥玉米,成年人的思念有多委婉? 汽车加油卡怎么办? 到“说到”和“说道”,可是这两个词有什么不同的 “说道”和“说到”的区别,两个词语分别怎么使用? “说到”和“说道” 蚊香的作用,到底是驱赶蚊子还是杀灭蚊子? 说道和说到的区别 说道与说到究竟谁对谁错。 说道和说到之分 在写文章时这两个词语该怎么用啊? 求赐教(区别,用法) 词语是“说道”和“说到” 蚊香是怎么杀死蚊子的?? 我说到和我说道的区别 说到与说道用法的区别是什么? 谁能告诉我“这样说道”和“这样说到”那个用法准确?有什么区别? 蚊香能够彻底消灭蚊子吗? 为什么蚊香能杀灭蚊虫? 词语“说道”的意思 到跟道的区别 “说道”是什么意思? 说道和说到哪个对,比如谁谁愤怒的说dao,是哪个dao,如果是喊dao又是哪个 下面句子哪一个“de”和“dao”用的正确? 1.小明淡淡的说道:“.......” 2.小明淡淡地说到:“......” 请问:道字的用法是“小刚兴奋的说道”“还是小刚兴奋的说到”