DEBUG中各种寻址方式的使用

合集下载

汇编实验报告(-)调试程序DEBUG的使用

汇编实验报告(-)调试程序DEBUG的使用

汇编实验报告(-)调试程序DEBUG的使用《汇编语言程序设计》实验报告实验一调试程序DEBUG 的使用一、实验目的通过实验掌握下列知识:1、DEBUG命令:A,T,D,F,G;2、数据在内存中的存放方式和内存操作数的几种寻址方式;3、汇编指令:INC,DEC,LOOP,INT 3的应用;4、汇编语言伪指令:BYTE PTR和WORD PTR的应用。

二、内容及步骤1.DEBUG 命令使用表 1.1 DEBUG命令****命令的使用中注意:****①字母不分大小写;②②只使用16 进制数,没有后缀字母;③分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符;④每个命令只有按了回车键后才有效,可以用Ctrl+Break中止命令的执行;⑤命令如果不符合Debug 的规则,则将以“error”提示,并用“^”指示错误位置。

许多命令的参数是主存逻辑地址,形式是“段基地址: 偏移地址”。

其中,段基地址可以是段寄存器或数值;偏移地址是数值。

如果不输入段地址,则采用默认值,可以是缺省段寄存器值。

如果没有提供偏移地址,则通常就是当前偏移地址。

1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DEBUG, 进入调试环境,显示提示符 '- '。

2、用命令 F 200 220 'AB' 将'AB'的两个ASCII码循环填入内存。

注:第一个参数200是当前段的起始偏移地址,第二个参数220是终了偏移地址,第三个参数‘AB’是被填入的数值,若不给出第二个参数则填入128(8行)个字节。

3、用命令 D200 观察内存中的十六进制码及屏幕右边的ASCII字符。

图1-1 Fill、Dump命令调用对主存操作的命令还支持地址范围这种参数,它的形式是:“开始地址结束地址”(结束地址不能具有段地址),或者是:“开始地址L 字节长度”。

D(Dump)命令显示主存单元的内容,它的格式如下(分号后的部分用于解释命令功能,不是命令本身):D [地址] ;显示当前或指定开始地址的主存内容D [范围] ;显示指定范围的主存内容图1-2 D命令调用左边部分是主存逻辑地址,中间是连续16 个字节的主存内容(16进制数,以字节为单位),右边部分是这16个字节内容的ASCII字符显示,不可显示字符用点“.”表示。

DEBUG的详细用法(自己测试)

DEBUG的详细用法(自己测试)
0B70:0108 F8 CLC
将机器指令程序送到起始地址为200H单元
-E 200 B2, 65, B4, 02, CD, 21, CD, 20
执行机器指令程序
-G=200
e
Program terminated normally
示例二:显示修改寄存器内容
5.读写磁盘
-N [d:][PATH]文件名.扩展名 指定想要读写的磁盘文件
-W 内存地址 将指定内存块写入文件
-L [内存地址] 将文件调如内存
修改寄存器
-R AX
AX 0000
:1234
-R
AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B76 ES=0B76 SS=0B76 CS=0B76 IP=0100 NV UP EI PL NZ NA PO NC
0B76:1006 CD20 INT 20
示例四:执行程序
单步执行
-T=0B76:1000
AX=0234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000
符号标志SF(Sign flag) NG(1) PL(0)
零标志ZF(Zero flag) ZR(1) NZ(0)
2010-02-24 20:01 DEBUG详细用法DEBUG详细用法
DEBUG命令一览
1.读写寄存器
-R 显示所有寄存器内容
-R 寄存器名 显示和修改指定寄存器内容
示例一:DEBUG环境下建立和汇编程序
输入并汇编程序
-A 100

实验一DEBUG的使用

实验一DEBUG的使用

实验一 DEBUG 的使用实验目的:1.学习使用.学习使用DEBUG DEBUG DEBUG程序的各种命令。

程序的各种命令。

程序的各种命令。

2.掌握.掌握8088/868088/868088/86指令系统指令系统指令系统---------算数指令。

算数指令。

算数指令。

3.掌握用.掌握用DEBUG DEBUG DEBUG调试自编程序的方法。

调试自编程序的方法。

调试自编程序的方法。

4.掌握.掌握8088/8086 CPU 8088/8086 CPU 寄存器的用途和存储器组织及它们之间的关系。

寄存器的用途和存储器组织及它们之间的关系。

寄存器的用途和存储器组织及它们之间的关系。

5.掌握内存操作数及寻址方法。

.掌握内存操作数及寻址方法。

6.掌握汇编语言伪操作.掌握汇编语言伪操作:BYTE PTR,WORD PTR :BYTE PTR,WORD PTR。

内容及步骤:一、一、DEBUG DEBUG 命令使用命令使用: :1、 敲 DEBUG 进入进入进入 DEBUG DEBUG 环境,显示提示符环境,显示提示符环境,显示提示符 '_ ' '_ '。

2、 用命令用命令 D100 10F D100 10F 观察内存中的观察内存中的161616进制码及屏幕右边的进制码及屏幕右边的进制码及屏幕右边的ASCII ASCII ASCII字符。

字符。

字符。

3、 用命令用命令 E100 30 31 32 E100 30 31 32 ………… 3F 3F 将30H 30H~~3FH 3FH写入地址为写入地址为写入地址为100H 100H 100H开始的内存单元中,开始的内存单元中,再用再用D D 命令观察结果,看键入的命令观察结果,看键入的161616进制数是什么字符的进制数是什么字符的进制数是什么字符的ASCII ASCII ASCII码码?4、 用命令用命令 F100 10F 'A' F100 10F 'A' 将'A''A'的的ASCII ASCII码填入内存,用码填入内存,用码填入内存,用D D 命令查看结果。

debug常见命令使用说明

debug常见命令使用说明

五、DEBUG调试程序DEBUG.EXE程序是专门为分析、研制和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。

它能使程序设计人员或用户触及到机器内部,因此可以说它是80X86CPU的心灵窗口,也是我们学习汇编语言必须掌握的调试工具。

1)DEBUG程序使用在DOS提示符下键入命令:C>DEBUG [盘符:][路径][文件名.EXE][参数1][参数2]这时屏幕上出现DEBUG的提示符“-”,表示系统在DEBUG管理之下,此时可以用DEBUG 进行程序调试。

若所有选项省略,仅把DEBUG装入内存,可对当前内存中的内容进行调试,或者再用N和L命令,从指定盘上装入要调试的程序;若命令行中有文件名,则DOS把DEBUG 程序调入内存后,再由DEBUG将指定的文件名装入内存。

2)DEBUG的常用命令(1)汇编命令A格式:A[起始地址]功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。

若缺省起始地址,则从当前CS:100地址开始存放。

A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。

(2)反汇编命令U格式1:U[起始地址]格式2:U[起始地址][结束地址|字节数]功能:格式1从指定起始地址处开始将32个字节的目标代码转换成汇编指令形式,缺省起始地址,则从当前地址CS:IP开始。

格式2将指定范围的内存单元中的目标代码转换成汇编指令。

(3)显示、修改寄存器命令R格式:R[寄存器名]功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。

缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。

AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000DI=0000 DS=3000 ES=23A0 CS=138E IP=0000NV UP DI PL NZ NA PO NC138E:0000 MOV AX,1234-R AX ;输入命令AX 0014 ;显示AX的内容:;供修改,不修改按回车。

实验一 Debug命令的使用.

实验一   Debug命令的使用.
—A ;从CS:100处开始键入指令
1560:0100 mov ah,9
1560:0102 mov dx,109
1560:0105 int 21h ;显示字符串HELLO
1560:0107 int 20h
1560:0109 db "hello$"
1560:010F ;回车结束
—G ;运行程序
hello
提示:在DEBUG环境下输入程序段时要省掉立即数后面的字符“H”
1、MOV指令的调试:(先不做
程序段:MOV AL, 55H
MOV AH, AL
MOV BX, 1000H
MOV BYTE PTR[BX], 66H(将66H放到以寄存器间接寻址的字节单元中,-d查看
MOV WORD PTR[BX+2], 77H (将77H放到以寄存器间接寻址的字单元中, -d查看
应用:常用于在调试过程中检查变量的值。
(5单步执行命令T,格式为:
- T [=地址]
功能:从指定地址执行一条指令后停下来,显示寄存器内容和状态值。若未指定地址,则执行当前指令的下一条指令。
(6反汇编命令U ,格式为:
-U [地址]或-U范围
功能:从制定地址开始,反汇编32个字节,或对指定范围内的主存内容进行反汇编。若没有指定地址,则接着上一个U命令的最后一个单元开始;若还没有使用过U命令,则从当前CS:IP开始。例如:
1D命令(显示:-d, -d 0af9:0100 , -d 0af9:0100 0107,
-d ds :0100 0107 , -d 0100 0107,
-d 0100 L 8
2E命令(修改:-e 0af9 ; 0100 41 ‘a’, -e 0100 ‘ABCD’

DEBUG使用简介

DEBUG使用简介

读端口内容 I 端口地址 调入文件 L 地址 驱动器 启始扇区 数量 移动内容 M 范围 地址 给文件命名 N 路径名 文件名 向端口输出 பைடு நூலகம் 端口地址 退出 Q 显示寄存器内容 R 寄存器名 在内存搜索 S 范围 列表 单步跟踪 T =地址 行数 反汇编 U 范围 写文件 W 地址 驱动器 启始扇区 数量
3)显示、修改寄存器内容( R ) -r ;显示所有寄存器内容 -r ax ;显示并修改AX寄存器内容 4)显示修改存储单元内容(E) -e ds:100 ;从DS:100单元开始修改(修改完一个 单元内容后按空格,修改下一个单元,按Enter 键结束修改。) -e ds:100 43,’abb’,76 ;从DS:100单元开始修改 为43H,61H(a),62H(b),62H(b),76H 5)填充内容单元(F) -f ds:100 200 0 ;将DS:100到200的单元填入0 6)反汇编 可以将存储器中的程序内容用汇编指令显示。
7)运行程序(G) -g =100 ;从CS:100开始执行程序 -g =100 110 ;从CS:100开始执行程序,并 在110设置断点(通过在程序中设置合适的断点, 对程序的查错和排错很重要) 8)单步运行(T) 单步执行时每执行一条指令都会显示寄存 器的内容,供用户参考。 -t ;从当前指令位置单步执行1条指令 -t 6 ;从当前指令位置单步执行6条指令 9)汇编(A) 提供用户输入很短的汇编程序(只接收指令) -a 100;从CS:100开始输入汇编指令程序 (依次输入程序指令,按两次Enter 键退出)
3 DEBUG中的数字全部为十六进制数 1)退出DEBUG(Q) 2)显示内存内容(D) 显示时最左边为地址,内存单元内容以十 六进制(左半部分)和ASCII(右半部分)显示 -d cs:100 ;显示由CS:100开始的128个字节单 元内容 -d 100 ;显示由DS:100开始的128个字节单 元内容 -d 100 120 ;显示由DS:100开始 到120单元内容 (或用-d 100L20) -d 100:120 ;显示100:120开始的128个字节单元内 容

第3章_1 寻址方式DEBUG

第3章_1 寻址方式DEBUG
物理地址PA= (DS) 16 + •偏移地址EA:BP→SS
(BX)
(SI) (DI)
物理地址PA= (SS) 16 +(BP) MOV AX, [BX] PA = 16d (DS) + (BX) MOV AX, [BP] PA = 16d (SS) + (BP) MOV AX, [SI] PA = 16d (DS) + (SI) 也称基址寻址 也称变址寻址 [SI]源变址 [DI]目的变址
(BX)=100H,(AX)=0133H,(10120H)=BCF0H 偏移地址EA=(BP)=0120H
物理地址PA= (SS) 16 +(BP)=10000H+100H=10120H
内 存
(SS) 1000H
0CH 52H EA=(BP) 01H 20H
16
(AX) = BCF0H
AH AL
EA=(BP+6)
01H
1000H
12H
34H
10126 34H 12H
10127
PA
10126H
3.2 寻址方式 存储器寻址
6、基址加变址寻址 (BX) 偏移地址EA= (BP) + (SI) (DI)
物理地址PA=(DS)×16 +(BX) +
(SI)
(DI) (SI)
物理地址PA=(SS)×16 +(BP) +
(BP)
(DI)
+ X ,8位16位移量
物理地址PA=(DS)×16 +(BX) +
(SI) (DI) (SI) (DI) + X ,8位16位移量
物理地址PA=(SS)×16 +(BP) +
+ X ,8位16位移量

汇编语言调试DEBUG命令详解

汇编语言调试DEBUG命令详解

汇编语言调试DEBUG命令详解1、显示命令D① D [地址]② D [范围]如不指定范围,一次显示8行×16个字节。

-D ;默认段寄存器为DS,当前偏移地址-D DS:100 / -D CS:200-D 200:100-D 200;200为偏移地址,默认段寄存器DS-D DS:100 110/ -D 100 L 102.修改命令E① E 地址;从指定地址开始,修改(或连续修改)存储单元内容。

DEBUG首先显示指定单元内容,如要修改,可输入新数据;空格键显示下一个单元内容并可修改,减号键显示上一个单元内容并可修改;如不修改,可直接按空格键或减号键;回车键结束命令。

② E 地址数据表;从指定的地址开始用数据表给定的数据修改存储单元。

-E DS:100 F3 ‘AB’ 8D。

3.添充命令FF 范围数据表;将数据表写入指定范围的存储单元;数据个数多,忽略多出的数据,个数少,则重复使用数据表。

-F DS:0 L5 01,02,03,04,05-F DS:0 L5 01 02 03 04 05(空格分隔)-F DS:0 L5 FF ;5个字节重复使用FF4.显示修改寄存器命令RR;★显示所有寄存器和标志位状态;★显示当前CS:IP指向的指令。

显示标志时使用的符号:标志标志=1 标志=0OF OV NVDF DN UPIF EI DISF NG PLZF ZR NZAF AC NAPF PE POCF CY NC5.汇编命令AA [地址];从指定的地址开始输入符号指令;如省略地址,则接着上一个A命令的最后一个单元开始;若第一次使用A命令省略地址,则从当前CS:IP 开始(通常是CS:100)。

注释:①在DEBUG下编写简单程序即使用A命令。

②每条指令后要按回车。

③不输入指令按回车,或按Ctrl+C结束汇编。

④支持所有8086符号硬指令,伪指令只支持DB、DW,不支持各类符号名。

6.反汇编命令U① U [地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:IP开始(通常是CS:100)。

DEBUG中各种寻址方式的使用

DEBUG中各种寻址方式的使用
寻址方式相对寻址方式arm的寻址方式8086寻址方式dsp寻址方式直接寻址方式单片机寻址方式arm寻址方式intel汇编寻址方式debug使用
实验2实验报告
软件学院1291410044杨德生
实验目的:熟悉debug中的各种寻址方式。其中包括立即寻址,寄存器寻址等等。
实验步骤及截图:
1.立即寻址方式:MOV AL,])
实验总结;
2.寄存器寻址方式:MOV AX,BX
3.直接寻址方式:MOV AX,[2000H]
4.寄存器间接寻址方式:mov ax , [bx]
5.寄存器相对寻址方式:mov ax,[count+si]
6.基址变址寻址方式:mov ax,[bx][di]
或写成;(mov ax , [bx+di]
7.相对基址变址寻址方式:mov ax,mask[bx][si]

DEBUG的基本命令使用

DEBUG的基本命令使用

实验一 DEBUG的基本命令使用实验名称:利用DEBUG验证寻址方式实验目的:掌握DEBUG的常用指令(R,D,E,A,U,T 指令)的使用方法,理解不同寻址方式的特点实验内容:在DEBUG中利用A命令输入以下汇编指令,并用U命令显示,利用T 命令单步跟踪指令的执行过程,利用R或者D命令观察相关寄存器或者内存单元内容的变化(相关过程和结果要体现在实验报告上)。

(1)立即寻址MOV AX,1MOV BL,02HMOV BH,34H-a13AE:0100 mov ax,113AE:0103 mov bl,0213AE:0105 mov bh,3413AE:0107-rAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0100 NV UP EI PL NZ NA PO NC13AE:0100 B80100 MOV AX,0001-tAX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0103 NV UP EI PL NZ NA PO NC13AE:0103 B302 MOV BL,02-tAX=0001 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0105 NV UP EI PL NZ NA PO NC13AE:0105 B734 MOV BH,34-tAX=0001 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0107 NV UP EI PL NZ NA PO NC13AE:0107 0000 ADD [BX+SI],AL DS:3402=00(2)寄存器寻址在验证完(1)后,执行mov ax,bx-a13AE:0107 mov ax,bx13AE:0109-tAX=3402 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0109 NV UP EI PL NZ NA PO NC13AE:0109 0000 ADD [BX+SI],AL DS:3402=00 -rAX=3402 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0109 NV UP EI PL NZ NA PO NC13AE:0109 0000 ADD [BX+SI],AL DS:3402=00(3)直接寻址用e命令向DS:1000处写入1234H,用D命令DS:1000处内容,然后执行mov AX,[1000H]-e 13a8:1000 34 12-d 13a8:1000 100113A8:1000 34 12 4.-a13AE:0109 mov ax,[1000]13AE:010C-tAX=0000 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=010C NV UP EI PL NZ NA PO NC13AE:010C 0000 ADD [BX+SI],AL DS:3402=00 -rAX=0000 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=010C NV UP EI PL NZ NA PO NC13AE:010C 0000 ADD [BX+SI],AL DS:3402=00(4)寄存器间接寻址用E命令向DS:1000处改写5678H,用D命令观察DS:1000处内容,然后执行-e13a8:1000 78 56-d 13a8:1000 100113A8:1000 78 56 xV-a13AE:010C mov si,100013AE:010F mov ax,[si]13AE:0111-tAX=0000 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=010F NV UP EI PL NZ NA PO NC13AE:010F 8B04 MOV AX,[SI] DS:1000=0000 -tAX=0000 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0111 NV UP EI PL NZ NA PO NC13AE:0111 0000 ADD [BX+SI],AL DS:4402=00 -rAX=0000 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0111 NV UP EI PL NZ NA PO NC13AE:0111 0000 ADD [BX+SI],AL DS:4402=00(5)变址寻址执行Mov BX,1000hMov AX,[BX+1]观察指令执行后AX,BX内容,以及[BX+1]内存单元处数据-a13AE:0111 mov bx,100013AE:0114 mov ax,[bx+1]13AE:0117-tAX=0000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0114 NV UP EI PL NZ NA PO NC13AE:0114 8B4701 MOV AX,[BX+01] DS:1001=0000 -tAX=0000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0117 NV UP EI PL NZ NA PO NC13AE:0117 0000 ADD [BX+SI],AL DS:2000=00 -rAX=0000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0117 NV UP EI PL NZ NA PO NC13AE:0117 0000 ADD [BX+SI],AL DS:2000=00 -d 1001 100213AE:1000 00 00 ..(6)变址加基址寻址用E命令向DS:1000~1004处写入0AB90H,03412H,然后执行Mov BX,1000hMov SI,1Mov AX,[BX+SI]Mov CX,[BX+SI+1]-e 1000 12-e 1001 34-e 1002 90-e 1003 ab-a13AE:0117 mov bx,100013AE:011A mov si,113AE:011D mov ax,[bx+si]13AE:011F mov cx,[bx+si+1]13AE:0122-tAX=0000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=011A NV UP EI PL NZ NA PO NC13AE:011A BE0100 MOV SI,0001-tAX=0000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0001 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=011D NV UP EI PL NZ NA PO NC13AE:011D 8B00 MOV AX,[BX+SI] DS:1001=9034 -tAX=9034 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0001 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=011F NV UP EI PL NZ NA PO NC13AE:011F 8B4801 MOV CX,[BX+SI+01] DS:1002=AB90 -rAX=9034 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0001 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=011F NV UP EI PL NZ NA PO NC13AE:011F 8B4801 MOV CX,[BX+SI+01] DS:1002=AB90。

利用DEBUG调试程序学习寻址方式和指令系统

利用DEBUG调试程序学习寻址方式和指令系统

DEBUG调试程序的使用汇编实验2008-09-28 09:46:22 阅读221 评论0 字号:大中小DEBUG调试程序的使用一、DEBUG的启动在DOS系统提示符下,运行DEBUG命令即可启动。

命令格式:DEBUG [文件名全称]功能:启动DEBUG调试程序,并把指定名字的文件装载入内存,以供调试。

说明:启动DEBUG,实际就是让计算机执行DEBUG.EXE这个调试程序。

若该程序不在当前目录下,需要在命令中指定该程序所在的位置路径(包括其所在磁盘和文件夹)。

文件名全称指定要调试的文件名及其所在的位置路径。

若指定该选项,则在启动DEBUG时把该文件装载入内存,以供调试,该文件一般是EXE文件或COM文件。

若不指定该选项,则只启动DEBUG,不装载文件。

二、DEBUG常用命令1、D——显示内存单元内容的命令格式:D[开始地址[结束地址]]说明:①若“开始地址”和“结束地址”都指定,则显示指定地址范围内的内存单元的内容;若只指定“开始地址”,省略“结束地址”,则显示从“开始地址”开始的80H 个字节的内容;若“开始地址”和“结束地址”都省略,则显示从上次显示的末字节单元的下一个字节开始的80H个字节的内容。

②“开始地址”可包含段地址,若省略段地址,则默认使用DS的值作段地址。

2、E——输入内容(修改内存单元内容)命令格式:E开始地址[数据表列]说明:①若指定数据表列,则用数据表列中的数据存入从指定地址开始的内存单元中;若省略数据表列,则先显示指定开始地址的内存单元的内容,等待你修改。

若需要修改,输入其内容,按空格键显示、修改下一个内存单元内容;若不需要修改,直接按空格键显示、修改下一个内存单元内容,修改完成后按回车键。

②“开始地址”可包含段地址,若省略段地址,则默认使用DS的值作段地址。

3、F——填充内容(修改内存单元内容)命令格式:F开始地址结束地址数据表列说明:①用数据表列中的数据存入由开始地址和结束地址指定范围内的内存单元。

DEBUG命令使用及寻址方式使用

DEBUG命令使用及寻址方式使用

实验一 DEBUG‎命令使用及‎8088指‎令使用一、实验目的1、熟悉使用D‎EBUG命‎令2、用DEBU‎G命令进行‎七种寻址方‎式的验证二、DEBUG‎学习指导DEBUG‎是专门为汇‎编语言设计‎的一种调试‎工具,它通过步进‎,设置断点等‎方式为汇编‎语言程序员‎提供了非常‎有效的调试‎手段。

1、DEBUG‎程序的启动‎在DOS提‎示符下,可键入命令‎: C>DEBUG‎[d:][path][文件名][ 参数1][参数2]其中文件名‎是被调试文‎件的名称,它须是执行‎文件(EXE),两个参数是‎运行被调试‎文件时所需‎要的命令参‎数,在DEBU‎G程序调入‎后,出现提示符‎“-”,此时,可键入所需‎的DEBU‎G命令。

在启动DE‎B UG时,如果输入了‎文件名,则DEBU‎G程序把指‎定文件装入‎内存。

用户可以通‎过DEBU‎G的命令对‎指定文件进‎行修改、显示和执行‎。

如果没有文‎件名,则是以当前‎内存的内容‎工作,或者用命名‎命令和装入‎命令把需要‎的文件装入‎内存,然后再用D‎E BUG的‎命令进行修‎改、显示和执行‎。

2、DEBUG‎的主要命令‎(1)汇编命令A‎,格式为:-A[地址] 该命令从指‎定地址开始‎允许输入汇‎编语句,把它们汇编‎成机器代码‎相继存放在‎从指定地址‎开始的存储‎器中。

(2)反汇编命令‎U,有两种格式‎:1)-U[地址] 该命令从指‎定地址开始‎,反汇编32‎个字节,若地址省略‎,则从上一个‎U命令的最‎后一条指令‎的下一个单‎元开始显示‎32个字节‎。

2)-U范围该命‎令对指定范‎围的内存单‎元进行反汇‎编,例如:-U 04BA:0100 0108或‎–U 04BA:0100 L9 此二命令是‎等效的。

(3)运行命令G‎,格式为:-G [=地址1][地址2[地址3。

]] 其中地址1‎规定了运行‎起始地址,后面的若干‎地址均为断‎点地址。

(4)追踪命令T‎,有两种格式‎:1)逐条指令追‎踪:-T[=地址] 该命令从指‎定地址起执‎行一条指令‎后停下来,显示寄存器‎内容和状态‎值。

实验一 用DEBUG熟悉指令功能和寻址方式

实验一 用DEBUG熟悉指令功能和寻址方式

实验一用DEBUG熟悉指令功能和寻址方式一、实验性质:验证型二、实验目的:掌握debug的使用,能建立和运行汇编语言程序掌握寻址方式DEBUG的命令DEBUG的命令都用单个字母表示,其后可以跟一个或多个参数,参数之间用空格或逗号分隔。

DEBUG的命令参数大多数是地址或地址范围,其地址书写格式为:[段地址:]偏移地址其中的段地址可以用段寄存器名表示,也可以用一个十六进制数表示。

如:ES:10043A5:200地址范围的书写格式为:Ⅰ.[段地址:]起始偏移地址终止偏移地址Ⅱ.[段地址:]起始领衔地址L长度如:CS:10010F和CS:100L10所指的地址范围是一致的。

当输入的命令不正确时,DEBUG将在该行底下指出错误所在。

注意:在DEBUG下,输入的数据和显示的数据都是十六进制数,不用在数据后加“H”A汇编与反汇编命令1.汇编命令A格式:A[地址]功能:从键盘输入汇编程序,并逐条地把汇编指令翻译成机器代码指令存入对应内存单元。

说明:如果不指定汇编地址,则以CS:IP为地址。

例:0BB6:0000-0005写入三条指令。

2.反汇编命令U格式:U[地址]/[地址范围]功能:将指定地址范围内的机器代码翻译成汇编源程序指令显示出来,并同时显示地址及代码。

注意:反汇编时一定确认指令的起始地址,否则得不到正确的结果。

例:反汇编看CS:0005-0011单元的指令。

B显示与修改内存单元内容的命令1.显示内存单元内容命令D格式1:D[地址]格式2:D地址范围只写一个D,表示显示从当前地址单元开始的128个单元中的字节数据说明:D命令在屏幕上显示的内容分为三部分,左边是每一行存储单元的起始地址,中间是各字节单元的内容,右边是各单元内容对应的ASCII码字符(不可显示的字符用"."代替)。

指定要显示的单元的逻辑地址,即写出完整的段地址和偏移地址。

指定要显示数据区起始单元的地址和最后一个单元的地址。

实验一 DEBUG和寻址方式的使用

实验一 DEBUG和寻址方式的使用

什么是DEBUG?DEBUG是DOS提供的专门用于汇编语言软件,它给出了一些命令,可直接检查、修改寄存器和内存的值,可以调试、跟踪和执行程序段,使我们进一步熟悉指令,了解CPU的内部环境。

DEBUG程序的启动:在DOS的提示符下直接键入命令C:\>DEBUG ↙进入DEBUG调试程序后,会出现DEBUG提示符“-”,此时就可以使用DEBUG命令了。

声明:在DEBUG状态下输入的数字均为十六进制数,如要输入其他进制数,在输入的数字后加以说明。

如十进制数:13D。

在WINDOWS输入:CMD→出现:C:\ Document and Setting \ Administrator>_>CD C:\ ↙C:\>debug ↙进入DEBUG调试程序后,会出现DEBUG提示符“-”,此时就可以使用DEBUG命令了。

在WINDOWS环境下Dos窗口大小的切换用1、R命令 ( R egister )功能:查看和修改寄存器的值。

查看格式:R↙在R命令后面直接打入回车,显示当前CPU内部所有寄存器的值、标志位状态及将要执行的下一条指令。

若要修改某个寄存器的值,直接在R后面输入该寄存器的名,然后回车,这时会显示该寄存器的当前值,新值直接输入即可。

修改格式:-R 寄存器名↙-R AX↙AX 0000 ( 0000 当前值 ):1234 ↙ ( 1234 新值 )AX=1020H BX=5060HCX=A0B0H DX=E0F0HSP=FFFFH BP=0200HSI=3040H DI=7080HDS=2000H ES=0300HSS=0400H CS=0100H2、D命令 ( D ump )功能:显示存储器单元的值。

格式:D 段寄存器名:起始地址在使用D命令之前,我们首先要明白,内存已经被我们划分为4个段,即:代码段CS、数据段DS、堆栈段SS、附加段ES。

做题时要明确显示或修改的是哪个段的内容。

单元开始的后面128个字节内存单元的值。

实验1debug的使用

实验1debug的使用

实验1debug的使⽤实验1 DEBUG的使⽤⼀、实验⽬的:1. 熟悉DEBUG的功能,运⾏并掌握其常⽤命令。

2. 使⽤DEBUG,观察PC机执⾏汇编指令的过程,掌握寄存器的名称与内存单元地址的形成。

⼆、实验要求:1. 遵守规章制度,爱护实验室设备。

2、熟悉Debug各个命令的⽤法。

3、熟悉寄存器的名称以及物理地址的形成。

4、写出实验报告。

三、实验内容:实验1、进⼊Debug环境,完成下列步骤,熟悉DEBUG指令。

1、⽤R命令查看寄存器的值,将AX的值修改为1,BX的值修改为10。

2、⽤D命令查看内存0:0200处的内容。

3、⽤E命令将”I am a student!!”写⼊内存0:0200处。

⽤D命令查看是否写⼊成功。

4、⽤A 命令向内存0:0210处写⼊汇编指令MOV AX,1234MOV BX,0158ADD AX, BX(注意:在⼀般的PC机中,DOS⽅式下,DOS和其他合法的程序⼀般都不会使⽤0:200~0:2FF(0:200h~0:2FFh)的256 个字节的空间。

所以,我们使⽤这段空间是安全的。

)5、使⽤U命令反汇编,并⽤T命令执⾏指令,查看执⾏后的结果,3条指令执⾏后AX的值为多少?实验2、使⽤Debug命令设置下列寄存器及存储器的内容(DS)=2000H, (BX)=0100H, (SI)=0002H, (20100)=12H, (20101)=34H, (20102)=56H, (20103)=78H, (21200)=2AH, (21201)=4CH, (21202)=B7H, (21203)=65H.,⽤汇编(A)、单步执⾏(T)等命令求解下列7个问题的答案,记录每条指令执⾏后AX的值并分析每条指令中源操作数使⽤的是何种寻址⽅式。

(1)MOV AX,1200H(2) MOV AX,BX(3) MOV AX,[1200H](4) MOV AX,[BX](5) MOV AX,1100[BX](6) MOV AX,[BX][SI](7) MOV AX,1100[BX][SI]实验3、⽤A命令写⼊汇编指令,使⽤寄存器、段寄存器、存储器和⽴即数等作为操作数,验证mov、add等指令的格式并得出结论。

DEBUG命令的功能及使用

DEBUG命令的功能及使用

实验一DEBUG命令的功能及使用DEBUG的主要命令功能与格式1. 汇编命令A格式:A [[<段寄存器名>/<段地址>:] <段内偏移>]上式等价于:(1)A <段寄存器名>:<段内偏移>(2)A <段地址>:<段内偏移>(3)A <段内偏移>(4)A功能:键入该命令后显示段地址和段内偏移并等待用户从键盘逐条键入汇编命令,逐条汇编成代码指令,顺序存放到段地址和段内偏移所指定的内存区域,直到显示下一地址时用户直接键入回车键返回到提示符“-”。

注:其中(1)用指定段寄存器的内容作段地址,(3)用CS的内容作段地址,(4)以CS:100作地址。

以后命令中提及的各种‘地址’形式,均指(1)、(2)、(3)中A后的地址形式。

2. 显示内存命令D格式:D [<地址>/<范围>]上式等价于:(1)D <地址>(2)D <范围>(3)D功能:以两种形式显示指定范围的内存内容。

一种形式为十六进制内容,一种形式为以相应字节的内容作为ASCII码的字符,对不可见字符以‘.’代替。

注:其中(1)以CS为段寄存器。

(3)显示CS:100起始的一片内容。

3. 修改内存命令E格式:E <地址> [<单元内容表>]上式等价于:(1)E <地址>(2)E <地址> <单元内容表>其中<单元内容表>是以逗号分隔的十六进制数,或用’或”括起来的字符串,或者是二者的组合。

功能:(1)不断显示地址,可连续键入修改内容,直至新地址出现后键入回车Enter为止。

(2)将<单元内容表>逐一写入由<地址>开始的一片单元。

4. 填充内存命令F格式:F <范围> <单元内容表>功能:将单元内容表中的值逐个填入指定范围,单元内容表中内容用完后重复使用。

寻址方式与DEBUG的使用

寻址方式与DEBUG的使用

寻址方式和DEBUG的使用一、实验目的:(1)熟悉DEBUG的调试命令和DEBUG的调试指令的使用方法2)掌握各种寻址方式和指令的功能二、实验要求(1)掌握DEBUG的调试R 、A、U、D、E、T命令使用方法(2)掌握数据传送、算术和逻辑运算指令的功能三、实验步骤1、首先进入DEBUG状态,用R命令修改各寄存器的内容,以满足题目的要求。

2、用A命令写入要实验的指令。

3、用U命令查看写入内存的指令。

4、用E命令修改内存的内容。

5、用D命令查看写入内存的内容。

6、用T命令(跟踪命令)单步执行,观察运行的结果。

7、T命令后,用D命令(显示内存单元命令)观察内存单元的内容和运行的结果。

四、实验内容:1.利用DEBUG命令(R、D和E等命令),完成如下寄存器和内存单元的初始化,并写出所用的debug命令。

注意:存储单元为字时,高、低字节写入的顺序。

AX=1020H BX=5060H CX=A0B0H DX=E0F0HSP=FFFFH BP=0200H SI=3040H DI=7080HDS=2000H ES=0300H SS=0400H CS=0100H(2000H:0100H) = 4567H(2000H:5060H) = DEF3H2.利用DEBUG命令(A、U 、T和G等命令)分别输入并执行以下各条指令,利用DEBUG命令查看并记录每条指令执行后的结果(后3题用T命令执行)。

注意:在每次运行新指令时,必须保持寄存器和内存单元的初始化结果。

1) MOV AH,DL AH=?2) MOV AX,[0100H] AX=?3) MOV AX,[BX] AX=?4) PUSH CX SP=? (SP)=?5) MOV AX,[BP] AX=?6) JMP 0100H IP=?7) MOV BX,2000JMP BX IP=?8) MOV BX,2000JMP [BX] IP=?3.使用debug调试下列程序段,并写出运行结果。

Debug的使用方法

Debug的使用方法

Debug的使用方法在软件开发过程中,经常会遇到各种bug和错误。

为了解决这些问题,开发人员需要使用debug工具进行调试。

本文将介绍debug 的使用方法,帮助读者快速定位和修复程序中的错误。

一、什么是debugDebug是一种用于查找和修复程序错误的技术。

通过使用debug 工具,开发人员可以跟踪程序的执行过程,查看变量的值和代码的执行路径,以及定位代码中的错误。

二、常用的debug工具1. IDE集成的debug工具:大多数集成开发环境(IDE)都提供了内置的debug工具,如Visual Studio、Eclipse等。

通过在IDE 中设置断点,开发人员可以逐步执行程序,并在每个断点处查看变量的值和代码的执行路径。

2. 命令行debug工具:除了IDE集成的debug工具,还有一些独立的命令行debug工具,如gdb、lldb等。

这些工具可以通过命令行参数设置断点、查看变量的值等。

三、使用debug工具的基本步骤1. 设置断点:在需要调试的代码行上设置断点。

断点可以是一个代码行,也可以是一个条件语句。

当程序执行到断点时,会暂停执行,并进入debug模式。

2. 执行程序:运行程序,并触发断点。

程序在执行到断点时会暂停,等待开发人员进行调试操作。

3. 查看变量的值:在debug模式中,开发人员可以查看变量的值。

可以逐步执行程序,每次执行一行代码,并在每个断点处查看变量的值。

如果发现变量的值与预期不符,就可以定位问题所在。

4. 跟踪代码的执行路径:在debug模式中,开发人员可以逐步执行程序,查看代码的执行路径。

通过观察代码的执行路径,可以发现代码中的逻辑错误。

5. 修复错误:当定位到错误时,开发人员需要修复错误。

可以通过修改代码、添加条件语句等方式来解决问题。

修复错误后,重新执行程序,验证修复效果。

四、debug技巧和注意事项1. 使用日志输出:在调试过程中,可以通过输出日志信息来跟踪程序的执行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档