在纯DOS环璄下,用debug调试和分析引导区,碰到很多db 66,db 0f ,db db c0的指令,请问这些是什么指令啊?

zdl2000 2002-05-09 01:06:43
在纯DOS环璄下,用debug调试和分析引导区,碰到很多db 66,db 0f ,db c0的指令,请问这些是什么指令啊?

1269:7DF1 41 INC CX
1269:7DF2 BB0007 MOV BX,0700
1269:7DF5 60 DB 60
1269:7DF6 66 DB 66
1269:7DF7 6A DB 6A
1269:7DF8 00E9 ADD CL,CH
1269:7DFA 3BFF CMP DI,DI
1269:7DFC 0000 ADD [BX+SI],AL
1269:7DFE 55 PUSH BP
1269:7DFF AA STOSB
...全文
211 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
simn 2002-07-02
  • 打赏
  • 举报
回复
还有不清楚的吗????
nikitar 2002-06-18
  • 打赏
  • 举报
回复
gz
Lesily 2002-05-18
  • 打赏
  • 举报
回复
很奇怪,这个贴子怎么还在?:)
woshiwo 2002-05-18
  • 打赏
  • 举报
回复
有这样的好东东?我要,多谢啦:) asdfghjmst@163.net
hstyl 2002-05-17
  • 打赏
  • 举报
回复
我写了一个DOS下的调试程序,调试方面比TR203好,支持CodeView调试信息,谁要?
ppkk 2002-05-12
  • 打赏
  • 举报
回复
debug只能显示16位汇编码,
例如引导区有如下二句使用32位寄存器的指令
mov eax,[07c1c]
cmp eax,[ebx]
在debug下就会显示为:
db 66
mov ax,[7c1c]
db 66
cmp ax,[bx]

另外一处
1269:7DF2 BB0007 MOV BX,0700
1269:7DF5 60 DB 60
1269:7DF6 66 DB 66
1269:7DF7 6A DB 6A
1269:7DF8 00E9 ADD CL,CH
1269:7DFA 3BFF CMP DI,DI

实际上是:(debug 不支持pusha push 立即数这样的指令)
mov bx,0700
pusha
push 00
jmp XXXX
你可用sice for dos察看。
QIC 2002-05-12
  • 打赏
  • 举报
回复
你可用sice for dos察看。
也可用在DOS下运行的调试程序YDEBUG v1.96分析
why_why 2002-05-12
  • 打赏
  • 举报
回复
那些是pusha及 popa之类的指令没错

其中pusha是把所有的寄存器及标志位入栈,而popa则是反操作。
过段时间我再帮你查下具体的指令及机器代码的对应,
以前有做过,现忘了
Your_friend 2002-05-12
  • 打赏
  • 举报
回复
果然是二级引导区

补充一下楼上的:
(debug 不支持pusha push 立即数这样的指令)
1269:7df2 mov bx,0700
1269:7df5 pusha
1269:7df6 push 00
1269:7df9 jmp 7d37
zdl2000 2002-05-11
  • 打赏
  • 举报
回复
感谢众位网友,这两天一直没来,没想有这么多的网友关心

那段代码前面的确是代码段,之前我用tr203分析是32位指令,但我否定了,所以想问问大家。以下为分析记录:

C:\>debug
-a
1269:0100 mov ax,201
1269:0103 mov bx,7c00
1269:0106 mov cx,1
1269:0109 mov dx,180
1269:010C int 13
1269:010E int 3
1269:010F
-g

AX=0050 BX=7C00 CX=0001 DX=0180 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1269 ES=1269 SS=1269 CS=1269 IP=010E NV UP EI PL NZ NA PO NC
1269:010E CC INT 3
-r ip
IP 010E
:7c00

-u 7c00
1269:7C00 EB3C JMP 7C3E
1269:7C02 90 NOP
1269:7C03 4D DEC BP
1269:7C04 53 PUSH BX
1269:7C05 57 PUSH DI
1269:7C06 49 DEC CX
1269:7C07 4E DEC SI
1269:7C08 342E XOR AL,2E
1269:7C0A 3100 XOR [BX+SI],AX
1269:7C0C 0220 ADD AH,[BX+SI]
1269:7C0E 0100 ADD [BX+SI],AX
1269:7C10 0200 ADD AL,[BX+SI]
1269:7C12 0200 ADD AL,[BX+SI]
1269:7C14 00F8 ADD AL,BH
1269:7C16 FB STI
1269:7C17 003F ADD [BX],BH
1269:7C19 00FF ADD BH,BH
1269:7C1B 003F ADD [BX],BH
1269:7C1D 0000 ADD [BX+SI],AL
1269:7C1F 004160 ADD [BX+DI+60],AL
-p

AX=0050 BX=7C00 CX=0001 DX=0180 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1269 ES=1269 SS=1269 CS=1269 IP=7C3E NV UP EI PL NZ NA PO NC
1269:7C3E 33C9 XOR CX,CX
-u
1269:7C3E 33C9 XOR CX,CX
1269:7C40 8ED1 MOV SS,CX
1269:7C42 BCFC7B MOV SP,7BFC
1269:7C45 16 PUSH SS
1269:7C46 07 POP ES
1269:7C47 BD7800 MOV BP,0078
1269:7C4A C57600 LDS SI,[BP+00]
1269:7C4D 1E PUSH DS
1269:7C4E 56 PUSH SI
1269:7C4F 16 PUSH SS
1269:7C50 55 PUSH BP
1269:7C51 BF2205 MOV DI,0522
1269:7C54 897E00 MOV [BP+00],DI
1269:7C57 894E02 MOV [BP+02],CX
1269:7C5A B10B MOV CL,0B
1269:7C5C FC CLD
1269:7C5D F3 REPZ
1269:7C5E A4 MOVSB
-

-u
1269:7C5F 06 PUSH ES
1269:7C60 1F POP DS
1269:7C61 BD007C MOV BP,7C00
1269:7C64 C645FE0F MOV BYTE PTR [DI-02],0F
1269:7C68 384E24 CMP [BP+24],CL
1269:7C6B 7D20 JGE 7C8D
1269:7C6D 8BC1 MOV AX,CX
1269:7C6F 99 CWD
1269:7C70 E87E01 CALL 7DF1
1269:7C73 83EB3A SUB BX,+3A
1269:7C76 66 DB 66
1269:7C77 A11C7C MOV AX,[7C1C]
1269:7C7A 66 DB 66
1269:7C7B 3B07 CMP AX,[BX]
1269:7C7D 8A57FC MOV DL,[BX-04]
-
-u 7df1
1269:7DF1 41 INC CX
1269:7DF2 BB0007 MOV BX,0700
1269:7DF5 60 DB 60
1269:7DF6 66 DB 66
1269:7DF7 6A DB 6A
1269:7DF8 00E9 ADD CL,CH
1269:7DFA 3BFF CMP DI,DI
1269:7DFC 0000 ADD [BX+SI],AL
1269:7DFE 55 PUSH BP
1269:7DFF AA STOSB
1269:7E00 0000 ADD [BX+SI],AL
1269:7E02 0000 ADD [BX+SI],AL
1269:7E04 0000 ADD [BX+SI],AL
1269:7E06 0000 ADD [BX+SI],AL
1269:7E08 0000 ADD [BX+SI],AL
1269:7E0A 0000 ADD [BX+SI],AL
1269:7E0C 0000 ADD [BX+SI],AL
1269:7E0E 0000 ADD [BX+SI],AL
1269:7E10 0000 ADD [BX+SI],AL
-



vBin 2002-05-11
  • 打赏
  • 举报
回复
关于磁盘引导区的详细注释可到此贴中找.
http://www.csdn.net/expert/topic/706/706607.xml?temp=.3914301
Your_friend 2002-05-11
  • 打赏
  • 举报
回复
感觉真不错,还有人惦记着。不过第三贴以上的两位大虾也被你骂了,不应该吧?
yu_wlof 2002-05-11
  • 打赏
  • 举报
回复
呵呵,我最恨人不懂乱说,诚实不足,败事有余
别误会,不是说第三贴以下的大侠
CodeDemon 2002-05-10
  • 打赏
  • 举报
回复
建议 zdl2000 (zdl2000) 将你的引导区的数据放上来大家看看.

不过我现在的想法是和zara(Kyrie eleison)一样的.
Your_friend 2002-05-10
  • 打赏
  • 举报
回复
又仔细看了一下那几行代码,发现了一个问题:你是不是将引导分区读到了1269:7C00处?如果是,那么你上面说的那个位置应该是第四张分区表和引导分区标志55AA的地方。你是怎么一下子DEBUG到这个地方的?你应该从程序的起点1269:7C00处,根据跳转流程一步一步调试呀,怎么也不可能到这个位子呀!
蚊子王 2002-05-10
  • 打赏
  • 举报
回复
我不知道贴主的引导区怎么样,根据我的系统的引导区看来,那应该是数据。
在55 aa(引导区结束标志)前面部分一般是一些出错信息的数据,比如:
Invalid system disk
这些信息。
Lastday1 2002-05-10
  • 打赏
  • 举报
回复
一般能在dos下运行的程序用debug都不会出问题的,你是不是用debug来调试win32程序了
zara 2002-05-09
  • 打赏
  • 举报
回复
这些是386的指令, 用debug是看不了的, 写到文件用hiew或ida之类的看吧.
"机器猫" 所说的情况在以前的较老版本的引导区中是没有386指令的. 不信你现在再将你的硬盘的引导内容读出来看看.
ppkk 2002-05-09
  • 打赏
  • 举报
回复
debug只能显示16位汇编码,
例如引导区有如下二句使用32位寄存器的指令
mov eax,[07c1c]
cmp eax,[ebx]
在debug下就会显示为:
db 66
mov ax,[7c1c]
db 66
cmp ax,[bx]
Your_friend 2002-05-09
  • 打赏
  • 举报
回复
我想他说的是二级引导分区吧
加载更多回复(6)

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧