汇编程序 - TD调试
为了写这个Blog,无奈的我深夜打开虚拟机,希望也能帮助一些人,因为好像真的有人不会欸!(→_→)
写在前面的话:
1. TD面板下的调试十分重要。可以观察内存(GOTO DS:XXXX)存放的位置与数值,是否正确。
2. 通过寄存器面板查看取出的值是否正确,单步调试(F8)查看程序的运行流程是否和想法相同。
3. 通过步入(F7)查看调用子程序内部是否按照正常逻辑执行。
4. 通过标志位寄存器查看进位借位标志和程序跳转的状态等。
5. 我没讲明白的,请你search一下吧,如果你愿意分享,不妨留言啦! (●'◡'●)
我的TD是老师给的,你们,额,我相信你们能找到,找不到再说吧 ^3^
说明一下,寄存器里面表示数据的时候,尤其是内存中,可能和你思路不一样,自己调试一下就知道了,多说无益。
重点来了!!!
1. 将你调试的代码放在TD路径下
TASM -V XXX.asm (这个叫汇编,其实和编译差不多)
TLINK -Z XXX.obj (这个叫链接)
TD XXX.exe (这个就是打开调试的面板啦!!!)
其实你可以发现后缀都可以不加,参数也可以不加(TASM XXX / TLINK XXX)
2. win + R --> cmd ,然后cd 啥的进入TD的目录(建议所有目录英文,毕竟是人家外国佬的东西)
3. 就调试mul.asm 这个程序吧!(汇编程序 - 1 (32位无符号乘法))
3.1 汇编,链接

3.2 td mul

3.3 F5,窗口填充(就是大点,上面灰色图层填满了而已)
F8 单步调试
F7 步入调试(在CALL指令调用子程序使用)
3.4 只有最后一个需要讲的了,查看内存区的数据,一般我们使用DS寄存器存放数据的内存地址,但是你会发现TD会跑到ES去了,没关系。

在代码区右键,goto...,DS:XXXX (由上图可知,我们内存地址开始是0069,所以我们需要查看那的数据变化)

这时内存区域已经变化了。

TIPS:可以对照着源代码来查看运行情况,毕竟TD中是汇编过后的代码。

我输入第一个数据是99999999,第二个数据是12345678,自己观察。

结果是,倒着存放的,也自己观察。

我觉得我写完了,也足够用了。end..... []~( ̄▽ ̄)~*
汇编程序 - TD调试的更多相关文章
- VC++中开发汇编语言(转)
汇编程序结构 一个显示字符串的汇编程序 程序格式 一.模式定义 二.includelib语句 三.函数声明语句 四.数据和代码部分 Visual C/C++环境 建立工程 汇编程序的调试 一.设置断点 ...
- 【汇编】1.汇编环境的搭建:DOSBox的安装
前言 DOSBox是一款在windows系统运行DOS程序的环境模拟器.可以解决在64位机中汇编程序编译调试等问题. 本文以 DOSBox 0.74 为例,汇编编译程序采用MASM6. 第一步下载相关 ...
- 使用Visual Studio 2013 调试 MASM 汇编程序!
原文地址:http://kipirvine.com/asm/debug/vstudio2013/index.htm Using the Microsoft Visual Studio 2013 Deb ...
- VS2010调试X86汇编程序
今天突然无聊了一下,想起之前想的用VS来调试汇编程序.之前只是想了一下,没有去做,好吧,今天搜索一下,找到了一个教程,相当的详细具体,我喜欢 按照http://blog.csdn.net/jinson ...
- 使用bochs调试汇编程序
使用bochs调试汇编程序 前面我们已经搭建好了bochs的环境,并且将我们的汇编程序写入了硬盘里面,现在我们来看看如何通过bochs来调试我们的程序. 前文:https://www.cnblogs. ...
- 兼容性调试-- 在谷歌浏览器中,td 设置colspan的失效的问题
通过设置table width="100%"table-layout="fixed" 解决
- mako模板调试与使用技巧
django默认的模板太不灵活,想把一个数字0.15显示成15%都得费不少劲,太不爽!!! 网上查阅了几个模板系统,有Jinja2等等,最后发现mako能够直接支持python的语句,最为灵活,果断选 ...
- 10分钟学会前端调试利器——FireBug
概述 FireBug是一个用于网站前端开发的工具,它是FireFox浏览器的一个扩展插件.它可以用于调试JavaScript.查看DOM.分析CSS.监控网络流量以及进行Ajax交互等.它提供了几乎前 ...
- ARM汇编指令调试方法
学习ARM汇编时,少不了对ARM汇编指令的调试.作为支持多语言的调试器,gdb自然是较好的选择.调试器工作时,一般通过修改代码段的内容构造trap软中断指令,实现程序的暂停和程序执行状态的监控.为了在 ...
- VS2012下X64平台嵌入汇编程序
VS2012在win32平台编译的时候可以很好的支持汇编语言的嵌入.建立一个控制台应用程序,选择空项目.项目建立好之后添加一个.cpp文件.在cpp文件中写入如下代码: #include <io ...
随机推荐
- k8s入门_label标签、nodeSelector
什么是label Label以key/value键值对的形式附加到任何对象上,如Pod,Service,Node, RC(ReplicationController)/RS(ReplicaSet)等. ...
- simlink物体仿真中连接scope
该模块用于连接scope和multibody仿真中物理模型的输出值.
- 羊了怎么居家办公?免费不限速的远控软件RayLink一解燃眉之急!!
近期疫情放开,各地症状不断的小阳人数量猛增(R君盼望大家早日转阴!!).不论是"羊"后居家,还是天选打工人被迫居家,远程控制公司电脑实现居家办公,成了大部分人的默契选择. 想远程控 ...
- Flink Application Development DataStream API Operators Overview-- Flink应用程序开发DataStream API操作符概览
目录 概览 DataStream转换 物理分区 任务链和资源组 翻译原文- Application Development DataStream API Operators 概览 操作符将一个或多个D ...
- css - 预编译less下,解决深度选择器失效问题,完成css样式修改
#若深度选择器有效.使用此可修改样式 /deep/ .cube-btn{ //...自定义css样式 } #深度选择器失效,则: 1.重新定义deep深度选择器 @deep:~'>>> ...
- Qt中的线程编程
在基于操作系统的程序设计中,在处理多任务时,可以有多种方法,但效率较高的当属线程方式,下面就来讨论一下在Qt中如何实现线程编程. 先来说一下什么是线程.线程(thread)是操作系统能够进行运算调度的 ...
- Java流程控制之DoWhile循环
DoWhile循环 对于while语句而言,如果不满足条件,则不能进入循环.但有时候我们需要即使不满足条件,也至少执行一次. do...while 循环和 while循环相似,不同的是,do...wh ...
- tzoj:3613 突破包围
http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=3613 算出两两之间min距离,然后从起点开 ...
- lightgbm与贷款违约预测项目
lightgbm histogram算法 将连续的浮点值离散成k个离散值,构造宽度为k的histogram leaf-wise生长策略 每次在所有叶子中找到分裂增益最大的一个叶子,一般也是数据量最大的 ...
- 为什么javac后加.java,java后不加.class?
Javac和java命令的用法:javac需要文件,Java需要执行类或jar文件javac用法: java用法 例子 Java命令后的"test.Test.class"会被认为是 ...