1 / 4
文档名称:

debug汇编DEBUG全过程跟踪!.pdf

格式:pdf   页数:4
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

debug汇编DEBUG全过程跟踪!.pdf

上传人:一文千金 2012/3/11 文件大小:0 KB

下载得到文件列表

debug汇编DEBUG全过程跟踪!.pdf

文档介绍

文档介绍:debug:汇编DEBUG全过程跟踪!
疯狂代码/ ĵ:http://assembler/


最近刚刚接触汇编,,而且使你对内存以及寄存器也
能够随时掌握他内容,更有助于你巩固反汇编出指令作用!

就不多写了直接来个简单点,主要是针对和我样初学者,代码量太大未必是件好事(对于理解起来)

代码如下: ; ; ; ; X*16+Y结果存放到ZZZ

dseg segment
xxx ; dw 1234h
yyy ; dw 5678h
zzz ; dd ?
dseg ends

cseg segment
; ; ; ; assume cs:cseg,ds:dseg
start: mov ax,dseg
; ; ; ; ; ; mov ds,ax
; ; ; ; ; ; mov ax,xxx
; ; ; ; ; ; xor dx,dx
; ; ; ; ; ; mov ax,xxx
; ; ; ; ; ; mov dx,16
; ; ; ; ; ; mul dx
; ; ; ; ; ; add ax,yyy
; ; ; ; ; ; adc dx,0
; ; ; ; ; ; mov word ptr zzz,ax
; ; ; ; ; ; mov word ptr zzz+2,dx
; ; ; ; ; ; mov ah,4ch
; ; ; ; ; ; 21h
; ; ; ; ; ; cseg ends
; ; ; ; ; ; end start

先DEBUG加载下EXE .反汇编下看看到底汇编汇编出什么样代码并-R来查看下当前各个寄存器内容如图:
我们可以看到数据段地址被分配为13C5

下面开始我们-T来跟踪下: 如图



单步跟踪,通过给DS赋值 DS内容在MOV DS,AX后变为13C5

XXX也被汇编成DS:[0000],也就是我们在DESG中定义他值为1234H ; ; ; MOV后AX变为1234H

XOR后DX内容变为0 主要为扩展成32位结果

继续跟踪如图:



*16 ; ; 的前DX已经为16 所以MUL后低字在AX里,高字在DX里

加上5678H 汇编后为DS:[0002] ; ; 加如AX ; ; 为防止进位在跟个ADC把结