まとめ:data.asm のビルド
CoddyのAssemblyジャーニー「基礎」セクションの一部。レッスン 30/45。
チャレンジ
.dataセクションでデータを定義するいくつかの方法を学びました。
| レッスン | 学んだこと |
|---|---|
| 3.1 | データを配置する.dataセクション |
| 3.2 | db:Byte(1 byte)を定義する |
| 3.3 | dw:Word(2 bytes)を定義する |
| 3.4 | dd:Double Word(4 bytes)を定義する |
| 3.5 | dq:Quad Word(8 bytes)を定義する |
| 3.6 | dbを使ったString:textを作成する |
| 3.7 | $シンボル:Stringのlengthをautomaticに計算する |
ここで、すべてを組み合わせて完全なdata.asmファイルを作成します。
このchallengeで作成するもの:
次の内容を含むdata.asmファイル:
- automaticなlength計算を行うString
- byte value
- word value
- double word value
- quad word value
これらをすべて.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ファイルを使用して、プログラムに必要なdataを保存します。main.asmファイルはdata.asmをincludeし、定義したlabelとlengthを使用します。
Challenge
次の内容を含む完全なdata.asmファイルを作成してください:
welcomeとcalledされたString。valueは'Welcome!'で、その後にnewline(0x0a)が続きます- 自動的にlengthを計算するconstant。
welcomeLenとcalledされ、$ - welcomeをusingします - value 99のbyte。
scoreとcalledされます - value 2025のword。
yearとcalledされます - value 8500000のdouble word。
populationとcalledされます - value 100000000000のquad word。
starsとcalledされます
すべて.dataセクション内に配置します。
自分で試してみよう
%include "data.asm"
section .text
global _start
_start:
; welcome文字列を出力する
mov rax, 1
mov rdi, 1
mov rsi, welcome
mov rdx, welcomeLen
syscall
; 終了
mov rax, 60
mov rdi, 0
syscall基礎のすべてのレッスン
自分で練習してみよう: Assemblyプレイグラウンド