汇编(二)环境及软件

前言

这篇是很久以前写好没发的,刚刚抛出来,改了改。

涉及了DTdebug的使用和寄存器介绍,以及一些指令。

以下是原文:



海哥名言:

“汇编是所有语言里面最简单的语言,因为他很好理解,很好实验。”

所以学习汇编最重要的是上手实验。了解了汇编基础以后,我开始进入汇编的正式学习,本篇使用工具和参考文章,都会放在文末。

这一部分强烈建议读一下《有趣的二进制》,目前我个人感觉这本书对汇编入门很有帮助,由浅入深通俗易懂。当然 也要记得动手试验一下书上的实例。

环境

使用软件:DTdebug(出品单位:昆山滴水信息技术有限公司)

第一次运行程序需要进行配置,无视进入软件的报错。在最上方菜单栏依次选择

Options-Appearance-Directories

将udd和 plugin的目录设置为下载好解压的文件目录,选中相应的文件夹。

在这里插入图片描述

界面分为四个窗口:

反汇编窗口、寄存器窗口、堆栈窗口、内存窗口。

在这里插入图片描述

基本操作

在反汇编窗口进行基础的汇编语言编写,F8逐步运行并观察寄存器窗口变化。

在这里插入图片描述

黑色表示为当前CPU正在执行语句,mov在汇编中的意思我举一个例子:

MOV EAX,ECX  

按照惯例,小阳子又来提问了:

呵,就这?我能看懂,是“MOVE AXE CX”你打错了!翻译过来是移动cx的斧头。——小阳子

在这里插入图片描述

真正含义就是“EAX=ECX” 即将ECX的值存入EAX。

这里我再附上一些基础的汇编指令。初学没必要记住全部,不要贪多。

https://imgchr.com/i/sz6T4s

在这里插入图片描述

详细指令介绍可以自行百度或者参考《有趣的二进制》第一章第四节。

寄存器

为小阳子解惑环节:

寄存器是CPU内部用来存放数据的地方。我会百度了没想到吧!——小阳子

32位通用寄存器

32位通用寄存器为八个,32位就是他的数据宽度,超过32位部分会被丢弃。

EAXESP
ECXEBP
EDXESI
EBXEDI

再回到上文的MOV指令,他是移动指令,用来移动数据的,那么就要分情况了:

1、立即数到寄存器

2、寄存器到寄存器

举个实例,建议自己试验一下,观察一下寄存器窗口。

mov eax,1
mov ecx,3
mov edx,eax

右下角那玩意儿是堆栈窗口,详情请等待第四篇文章。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值