まとめ:data.asm のビルド
CoddyのAssemblyジャーニー「基礎」セクションの一部 — レッスン 30/45。
チャレンジ
あなたは .data セクションでデータを定義するいくつかの方法を学びました:
| レッスン | 学んだこと |
|---|---|
| 3.1 | .data セクション — データの配置場所 |
| 3.2 | db — Define Byte(1バイト) |
| 3.3 | dw — Define Word(2バイト) |
| 3.4 | dd — Define Double Word(4バイト) |
| 3.5 | dq — Define Quad Word(8バイト) |
| 3.6 | db を使った文字列 — テキストの作成 |
| 3.7 | $ シンボル — 文字列の長さを自動的に計算する |
いよいよ、これらすべてを組み合わせて、完全な data.asm ファイルを作成する時が来ました。
このチャレンジで作成するもの:
以下の内容を含む data.asm ファイル:
- 自動長さ計算付きの文字列
- バイト値
- ワード値
- ダブルワード値
- クアッドワード値
これらすべてが .data セクションに適切に整理されていること。
完全な <strong>data.asm</strong> の例:
section .data
; String with automatic length
msg db 'Hello', 0x0a
msgLen equ $ - msg
; Numbers of different sizes
smallNum db 100
mediumNum dw 5000
largeNum dd 100000
veryLarge dq 5000000000これが重要な理由:
次の章では、このような data.asm ファイルを使用して、プログラムが必要とするデータを保存します。main.asm ファイルはあなたの data.asm をインクルードし、定義されたラベルと長さを使用します。
チャレンジ
以下の内容で完全な data.asm ファイルを作成してください:
- 値が 'Welcome!' で、その後に改行(0x0a)が続く、
welcomeという名前の文字列 $ - welcomeを使用して長さを自動的に計算する、welcomeLenという名前の定数- 値が 99 の、
scoreという名前のバイト - 値が 2025 の、
yearという名前のワード - 値が 8500000 の、
populationという名前のダブルワード - 値が 100000000000 の、
starsという名前のクアッドワード
すべて .data セクション内に記述してください。
自分で試してみよう
%include "data.asm"
section .text
global _start
_start:
; ウェルカム文字列を表示
mov rax, 1
mov rdi, 1
mov rsi, welcome
mov rdx, welcomeLen
syscall
; 終了
mov rax, 60
mov rdi, 0
syscall