[汇编语言]-debug跟踪执行
ffff:0-ffff:d内存中数值求和放入dx寄存器中
代码:
add.asm
assume cs:code
code segment
mov ax,0ffffH
mov ds,ax mov dx, mov al,ds:[]
mov ah,
add dx,ax mov al,ds:[]
mov ah,
add dx,ax mov al,ds:[]
mov ah,
add dx,ax mov al,ds:[]
mov ah,
add dx,ax mov al,ds:[]
mov ah,
add dx,ax mov al,ds:[]
mov ah,
add dx,ax mov al,ds:[]
mov ah,
add dx,ax mov al,ds:[]
mov ah,
add dx,ax mov al,ds:[]
mov ah,
add dx,ax mov al,ds:[]
mov ah,
add dx,ax mov al,ds:[0ah]
mov ah,
add dx,ax mov al,ds:[0bh]
mov ah,
add dx,ax mov ax,4c00H
int 21h
code ends
end
编译,链接add.adm
masm add;
link add;
执行add.exe
如上图
-r 将显示寄存器值. cs:ip 为 0B60:0000为程序起始地址
-t 则执行程序 显示为上一次执行后的寄存器内容,最后一行为 将要执行的指令,
-u 显示汇编代码,及内存中得位置.如现在程序开始地址为 0B60:0003 MOV DS,AX 默认从cs:ip指向的地址显示代码
接上图
-g 偏移地址, 表示执行到001D为止, 001D处的代码还未执行.类似断点跟踪
-p int 21h要用p命令执行
以上程序可用loop优化,优化后为:
连续内存可以使用[bx]方法
assume cs:code
code segment
mov ax,0ffffH
mov ds,ax
mov bx, mov dx, mov cx,
s:mov al,[bx]
mov ah,
add dx,ax
inc bx
loop s mov ax,4c00H
int 21h code ends
end
执行LOOP循环:
(1) 用-g直接指定到 0015 loop代码段,使用-p
-p 在遇到LOOP 000E时,用-p命令执行,Debug自动重复执行loop中内存,直到(cx) = 0
最后一次执行loop 000E后, (cx) = 0 (IP) = 0017H,当前CS:0017处的mov ax,4c00H.
(2) 用 -g 直接执行到 cs:0017
-g 0017
[汇编语言]-debug跟踪执行的更多相关文章
- SQL Tuning 基础概述03 - 使用sql_trace和10046事件跟踪执行计划
1.使用sql_trace跟踪执行计划 1.1 当前session跟踪: alter session set sql_trace = true; //开始sql_trace alter session ...
- CAS单点登录原理以及debug跟踪登录流程
CAS 原理和协议 基础模式 基础模式 SSO 访问流程主要有以下步骤: 1. 访问服务: SSO 客户端发送请求访问应用系统提供的服务资源. 2. 定向认证: SSO 客户端会重定向用户请求到 SS ...
- 汇编语言debug入门
进入windows操作系统,因为我的虚拟机用的是win7 64位,所以装了一个Dos Box 的软件来执行这些指令. 输入debug回车,这样就进入了debug模式. 1: 输入 -r 查看或者修改寄 ...
- Debug 单步执行命令step into/step out/step over的区别
总结一下在debug中三种调试的区别: step into就是单步执行,遇到子函数就进入并且继续单步执行: step over是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数 ...
- IE的debug工具对程序进行debug跟踪JS代码
2015/8/31 (其他的:显示zjfy_app_sys_ip.html,只需关闭启用保护模式) 显示ie的debug,F12-->Ctrl + P 扩展:第一步,在程序中设置断点,如图所示左 ...
- 【转】mysql如何跟踪执行的sql语句
转自http://blog.csdn.net/testcs_dn/article/details/18791815 在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? ...
- mysql通过查看跟踪日志跟踪执行的sql语句
在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? 其实方法很简单,开启mysql的日志log功能,通过查看跟踪日志即可. 开启mysql的日志log方法: wind ...
- 汇编语言debug命令与指令机器码
一.debug命令 二.标志信息 -r用这个指令,得到的信息右下角: NV UP EI PL NZ NA PO NC 这些符号代表的就是标志寄存器里常用标志位的值.这个是符号值对应表: 溢出标志OF( ...
- mysql跟踪执行的sql语句
修改my.cnf配置文件 /usr/local/mysql/bin/mysql --verbose --help | grep -A 1 'Default options' Default optio ...
随机推荐
- Myeclipse中如何修改Tomcat的端口号
一,使用 Myeclipse 中自带的 tomcat 右键 configure 弹出窗口 在 port Number 中修改 端口号即可: 二,配置的 tomcat 如果用上述的方法,只能打开这样的窗 ...
- 在linux中配置tomcat
Linux下Tomcat的安装配置 一.下载安装对应的jdk,并配置Java环境. 官网下载地址: http://www.oracle.com/technetwork/java/javase/down ...
- 十二、享元(Flyweight)模式--结构模式(Structural Pattern)
Flyweight在拳击比赛中指最轻量级,即"蝇量级",有些作者翻译为"羽量级".这里使用"享元 模式"更能反映模式的用意. 享元模式以共享 ...
- web技术之图片预加载
http://www.cnblogs.com/rt0d/archive/2011/04/17/2018646.html http://www.oschina.net/code/snippet_5437 ...
- 关于文字颜色/图片背景---selector状态列表
文字颜色 android:textColor="@style/style_name" ----------------------------------widget 图片背景 a ...
- C# 调用FFmpeg 根据图片合成视频
1.项目结构: 2.代码: using System; using System.Collections.Generic; using System.Diagnostics; using System ...
- logstash grok 解析Nginx
log_format main '$remote_addr [$time_local] "$request" ' '$request_body $status $body_byte ...
- Unix/Linux环境C编程入门教程(33) 命令和鼠标管理用户和组
Linux是一个多用户.多任务的实时操作系统,允许多人同时访问计算机, 并同时运行多个任务.UNIX系统具有稳定.高效.安全.方便.功能强大等诸多优点,自20世纪70年代开始便运行在许多大型和小型计算 ...
- bzoj1632 [Usaco2007 Feb]Lilypad Pond
Description Farmer John 建造了一个美丽的池塘,用于让他的牛们审美和锻炼.这个长方形的池子被分割成了 M 行和 N 列( 1 ≤ M ≤ 30 ; 1 ≤ N ≤ 30 ) 正方 ...
- HTML5 Canvas Cheat Sheet
HTML5 Canvas Cheat Sheet HTML5 Canvas Cheat Sheet v1.x