[汇编语言]-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 ...
随机推荐
- spl_autoload_register()
5.3版本增加了命名空间prepend函数 <?php // function __autoload($class) {// include 'classes/' . $class ...
- php 中const和 define的区别
在php中定义常量时,可用到const与define这两种方法,那他们到底有什么区别呢? 1.const用于类成员变量的定义,一经定义,不可修改.define不可用于类成员变量的定义,可用于全局常量. ...
- 无聊写了一个最简单的MVC4+Highcharts连数据库例子
乱搞了个数据库 后面发现没定INT类型 直接将ID当数据显示了 效果图: 前端 @{ Layout = null; } <!DOCTYPE html> <html> <h ...
- [转]浅谈C/C++内存泄露及其检测工具
转自:http://www.cnblogs.com/taoxu0903/archive/2007/10/27/939261.html 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问 ...
- js阻止元素的默认事件与冒泡事件
嵌套的div元素,如果父级和子元素都绑定了一些事件,那么在点击最内层子元素时可能会触发父级元素的事件,从而带来一定的影响. 1. event.preventDefault(); -- 阻止元素的默认 ...
- tomcat 项目部署问题
我本地Tomcat版本:Apache Tomcat/8.0.3.0 服务器端:Apache Tomcat/6.0.37 JVM都是:1.7.0_40-b43 之前项目运行正常,在我更新了一些模块后,重 ...
- 有意思的GacUI
所有方法,无论是你写还是工具来codegen还是用宏,最终都指向把这些名字和对应的指针存在一个map里.C++是不提供这个功能的,我也没仔细研究过qt怎么做,不过我在我自己的gacui里面实现了类似的 ...
- Qt制作Aero特效窗口
转载请注明链接与作者huihui1988 初学QT,边看书边自己做点小东西.最近突然心血来潮,想自己做个小巧点的,界面美观一点的备忘当桌面上.想了半天,发现VISTA/WIN7的Aero效果就不错,况 ...
- WPF 利用子线程弹出子窗体的研究
一般来说子线程都是用来处理数据的,主窗体用来实现展现,但是有些时候我们希望子窗体实现等待效果,遮挡主窗体并使主窗体逻辑正常进行,这个业务需求虽然不多,但是正好我们用到了,于是我打算把研究成果写在这了. ...
- nginx监听端口和反向代理端口的权限问题
Linux的SELinux安全性控制除作用于文件系统外还作用于端口,这使得那些作为服务启动的进程只能在规定的几个端口上监听.为叙述方便我们称之为受控端口. nginx监听端口 要查看当前有哪些受控端口 ...