Menu
Coddy logo textTech

まとめ:data.asm のビルド

CoddyのAssemblyジャーニー「基礎」セクションの一部 — レッスン 30/45。

challenge icon

チャレンジ

あなたは .data セクションでデータを定義するいくつかの方法を学びました:

レッスン学んだこと
3.1.data セクション — データの配置場所
3.2db — Define Byte(1バイト)
3.3dw — Define Word(2バイト)
3.4dd — Define Double Word(4バイト)
3.5dq — Define Quad Word(8バイト)
3.6db を使った文字列 — テキストの作成
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 ファイルを作成してください:

  1. 値が 'Welcome!' で、その後に改行(0x0a)が続く、welcome という名前の文字列
  2. $ - welcome を使用して長さを自動的に計算する、welcomeLen という名前の定数
  3. 値が 99 の、score という名前のバイト
  4. 値が 2025 の、year という名前のワード
  5. 値が 8500000 の、population という名前のダブルワード
  6. 値が 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

基礎のすべてのレッスン