Skip to content

Commit

Permalink
public アセンブリ言語を勉強する
Browse files Browse the repository at this point in the history
  • Loading branch information
Scrrrr committed Nov 23, 2024
1 parent f35f2c3 commit 2b9c7f0
Show file tree
Hide file tree
Showing 4 changed files with 261 additions and 241 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: アセンブリ言語と逆アセンブル入門
published: 2023-06-24
description: ''
image: ''
tags: []
category: 'Malware Analysis'
draft: false
lang: ''
---

## コンピュータの基礎

コンピュータの最小単位はBit
8ビットのグループは1Byteと呼ぶ。1Byteは2つの16進数で表現される。
例えばb01011101は16進数では5Dと表現される。そして、5(0101)とD(1101)はそれぞれニブルと呼ばれる。

Byte以外に
2Byteをword
4ByteをDouble word
8Byteをquadword
と呼ぶ

### データの解釈
`b01011101`
16進数で`5D`
10進数で`93`
ASCII Codeでは`]`を表し
マシンコードでは`(mov dbp, esp)`を表す。

## 汎用レジスタ

x86 CPUには8つの汎用レジスタがある。
```bash
{EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI}
```

これらは、それぞれ4バイトです。  

各レジスタの下位2バイトには 
```bash
{AX, BX, CX, DX, SP, BP, SI, DI}
```
としてアクセスできます。  

また、8つの汎用レジスタの下位2バイトの下位1バイトは
```bash
{AL, BL, CL, DL}
```
8つの汎用レジスタの下位2バイトの上位1バイトは
```bash
{AH, BH, CH, DH}
```
としてアクセスすることができる。  

This file was deleted.

Loading

0 comments on commit 2b9c7f0

Please sign in to comment.