## writeup
```shell
└─$ wget https://artifacts.picoctf.net/c/509/disassembler-dump0_a.txt
--2023-07-30 22:08:23-- https://artifacts.picoctf.net/c/509/disassembler-dump0_a.txt
Resolving artifacts.picoctf.net (artifacts.picoctf.net)... 13.35.7.96, 13.35.7.31, 13.35.7.121, ...
Connecting to artifacts.picoctf.net (artifacts.picoctf.net)|13.35.7.96|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 209 [application/octet-stream]
Saving to: ‘disassembler-dump0_a.txt’
disassembler-dump 100%[===========>] 209 --.-KB/s in 0s
2023-07-30 22:08:27 (157 MB/s) - ‘disassembler-dump0_a.txt’ saved [209/209]
┌──(kali㉿kali)-[~/code]
└─$ cat disassembler-dump0_a.txt
<+0>: endbr64
<+4>: push rbp
<+5>: mov rbp,rsp
<+8>: mov DWORD PTR [rbp-0x4],edi
<+11>: mov QWORD PTR [rbp-0x10],rsi
<+15>: mov eax,0x30
<+20>: pop rbp
<+21>: ret
┌──(kali㉿kali)-[~/code]
└─$ cat disassembler-dump0_a.txt | grep "eax"
<+15>: mov eax,0x30
┌──(kali㉿kali)-[~/code]
└─$ python3
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print(int("0x30",16))
48
```
=> picoCTF{48}
## what is eax
eax, ebx, ecx, edx, esi, edi, ebp, esp等都是**X86 組合語言中CPU上的通用寄存器**的名稱,是32位的寄存器。如果用C語言來解釋,可以把這些寄存器當作變數看待。
**比方說:add eax,-2 ; //可以認為是給變數eax加上-2這樣的一個值。**
這些32位寄存器有多種用途,但每一個都有“專長”,有各自的特別之處。
**EAX 是"累加器"(accumulator), 它是很多加法乘法指令的預設寄存器。**
source:
- https://topic.alibabacloud.com/tc/a/in-assembly-languages-eax-ebx-ecx-edx-esi-edi-ebp-and-esp_8_8_32031109.html
- https://ithelp.ithome.com.tw/m/articles/10227112
- https://primer.picoctf.com/#_assembly