「配枪朱丽叶。」 「配枪朱丽叶。」
  • 🏠 INDEX
  • 🚩 CTF
    • WEB
    • CRYPTO
    • MISC
  • 🌐 SITE
    • BUUCTF
    • XCTF
    • CTF.SHOW
    • BMZCTF
    • VULNHUB
    • BUGKU
    • HACKTHEBOX
  • 📔 NOTE
    • 学习笔记
    • 工具分享
    • 漏洞复现
  • 👩‍💻 ABOUT ME
  • 💬 COMMENT
  • 🏠 INDEX
  • 🚩 CTF
    • WEB
    • CRYPTO
    • MISC
  • 🌐 SITE
    • BUUCTF
    • XCTF
    • CTF.SHOW
    • BMZCTF
    • VULNHUB
    • BUGKU
    • HACKTHEBOX
  • 📔 NOTE
    • 学习笔记
    • 工具分享
    • 漏洞复现
  • 👩‍💻 ABOUT ME
  • 💬 COMMENT
我的主页 › 笔记 › 汇编学习笔记(一)1 min read
#笔记#

汇编学习笔记(一)1 min read

9月前
89 0
内容 隐藏
基础知识
DEBUG基础用法

基础知识

[*]汇编语言(asseembly)缺点:
不通用。编写程序比较繁琐,调试,维护,交流,移植困难,需要熟悉计算机硬件系统,考虑许多细节。
汇编语言的缺点使得人们主要采用高级语言进行程序开发工作,有时候需要采用高级语言+汇编语言混合方式,互相取长补短,更好的解决实际问题。

[*]为什么发明高级语言:汇编针对CPU,可能导致同样功能的程序要写几十份代码,因为不同的硬件CPU不一样,指令集/命名/助记符/数量等也不一样,高级语言程序与具体计算机无关,可以在多种计算机上编译后执行(通用性强)

[*]汇编语言优点:
汇编语言程序与处理器指令系统密切相关,形成的可执行文件运行速度快,占用内存容量少,可以编写在”时间”和”空间”两方面最有效的程序,完全发挥硬件的性能,效率高(但取决于开发人员的水平)。在高级语言不能有up/down功能,高级语法要低于汇编语法,不能定义CPU不通用的语法,限制了它的功能。汇编语言才能完全发挥硬件的功能。所以做操作系统必然用汇编。程序员可直接有效地控制系统硬件,针对CPU进行编程(高级语言做不到)

[*]汇编语言应用场合:
程序需要有较快的执行时间,大型软件需要提高性能、优化处理的部分(比如大型游戏),没有合适的高级语言或只能采用汇编语言的时候(比如机械加工/数控机床),分析具体系统尤其是该系统的底层软件/加解密软件/分析和防治计算机病毒等等(比如操作系统,逆向),程序与计算机硬件密切相关,程序需要直接,有效地控制硬件。

[*]汇编语言本质上是机器语言,一行汇编对应一行二进制。

[*]寄存器(Register)是CPU内部的高速存储单元,多少位寄存器,CPU有多大

[*]80×86汇编,X代表版本

[*]指令系统:计算机的指令系统就是指计算机能够执行的所有指令的集合

[*]8086内部结构最重要的是其寄存器组(8个通用寄存器,1个指令指针寄存器[PC,记录代码走到哪里],1个标志寄存器,4个段寄存器)

AX-累加器:使用频率最高,用于算数、逻辑运算以及与外设传送信息等 add
BX-基址寄存器,常用做存放寄存器地址 base
CX-计数器,作为循环和串操作等指令中的隐含计数器,不做循环是通用的 count
DX-数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。Data

SI-source 源地址和目的地址
DI-dest 目的地址
BP-BasePoint 栈基址
SP-StackPoint 栈顶
IP-指令指针(即将执行的指令位置)

[*]IP寄存器是一个专用寄存器。

[*]指令一般都是:目的操作数,源操作数(例如MOV ax,bx)

[*]数据的存储单位:

双字Dword 32位 4个字节
word 16位,2个字节
字节byte 8个二进制位
二进制位bit 存储一位二进制数:0或1

[*]中括号([])表示内存的地址

[*]最低有效位LSB:数据最低位

[*]最高有效位MSB:数据的最高位,对应字节、字、双字分别指D7,D15,D31位

[*]每个存储单元都有一个编号:被称为存储器地址,每个存储单元放一个字节的内容

[*]0002H单元存放一个数据34H,表达为[0002H]=34H(debug上不用写“H”)

[*]在debug中只能表示十六进制数值(写入)例如mov byte ptr [100],34

[*]段寄存器:

SS跟SP BP配合
ES DS跟BX SI DI配合
CS跟IP配合

DEBUG基础用法

-a进入编辑模式,(-a 108 进入108地址调试)

-d打印某一段地址的十六进制数据(比如-d 0:100)

-p单步步过

-t单步步入

-g让程序直接运行

-q退出

-r cx xx 设置写入文件的字节大小为xx(xx表示数字,单位为byte,也就是xx*8bit)

AC辅助进位标识 NA无辅助进位

CY进位 NC不进位

PL正数 NG负数(两个有符号运算中,超过7FFF的时候是负数)

NV未溢出 OV溢出(无符号没有溢出)

PE(末尾奇偶标志)PE偶校验 PO奇校验

ZF(零标志,有变成0的寄存器)ZR为零 NZ不为零

0 0
Shaw Root
相关文章
[Vulhub]CVE-2017-12635/12636 CouchDB 垂直权限绕过/任意命令执行漏洞复现
[Vulnhub]GoldenEye: 1靶机通关记录
[Durandal’s Backdoor]nc替代工具
CVE-2021-3156 sudo 本地提权漏洞复现
从0开始的JAVA学习笔记
头像
Shaw Root站长
> 缓慢又笨拙的路上,谢谢你们陪我长大。
144文章 0评论 128获赞
随便看看:)
[网鼎杯 2020 朱雀组]部分WEB题解
9月前
密码保护:Elasticsearch的搭建和学习笔记
1月前
[SoCat]姿势笔记
4月前
[INSHack2018]42.tar.xz
12月前
[SUCTF 2019]EasyWeb
2周前
  • 旧站
  • 我的知乎
  • Riro
  • 7i4n2h3n9
  • EDS
  • 熵增
  • 紫哥purplet
  • 夏风
  • N0vice
  • Ga1@xy
  • prontosil
  • FzWjScJ
  • Retr_0
  • L1near
  • 1p0ch
  • β-AS
  • Match
  • Dizzyk
  • Y1ng
  • 偏有宸机
  • Van1sh
  • Fstone
  • Kali’s Blog
  • Airtail
  • False
  • 魔法少女雪殇
Copyright © 2020-2021 「配枪朱丽叶。」. Designed by nicetheme. 百度统计 载入天数... 载入时分秒...