1

私はアセンブリ言語を学ぼうとしており、これまでにいくつかの簡単な手順を実行しました。ascii-id を使用して画面に文字を表示できますが、特定の文字の ID を変数に格納して出力したいと考えています。残念ながら、これは機能しません:)私のコードは画面にスペースしか表示しません。各種ご協力ありがとうございます!

[BITS 16]
[ORG 0x7C00]

; MOV AL, 48 (works)

MOV AL, [false]
CALL PrintCharacter

JMP $

PrintCharacter:
MOV AH, 0x0E
MOV BH, 0x00
MOV BL, 0x07

INT 0x10
RET

false db 48
true db 49

TIMES 510 - ($ - $$) db 0
DW 0xAA55
4

1 に答える 1

1

ds:falseのアドレスを指すペアが必要なので、(レジスタfalseを介して) データ セグメントをセットアップする必要があります。dsディレクティブにより[ORG 0x7c00]、ラベルの値はfalse必要な場所に既にあるため、ds0 に設定するだけで済みます。

xor ax,ax
mov ds,ax

それをコードの先頭に置くだけです。

于 2013-07-09T13:58:01.310 に答える