2

16ビットアセンブリ(winasm IDEおよびmasm)を使用して単純なHello Worldを印刷したいのですが、「helloworld」の前に不明な文字が表示されます。ここにコードがあります:

.MODEL small
.STACK 100h
.data
message db "Hello, world!$"
.code
_start:
    mov ah,9
    lea dx,message ; addr of buffer
    int 21h
    mov ah,1
    int 21h
END _start
4

2 に答える 2

3

MASM構文についてはよくわかりませんが、DSレジスタを次のように設定する必要があります。

    mov  ax, @data  ; if the .data labels points to your data segment
    mov  ds, ax
; then your code
    mov  ah, 9 ..........
于 2013-02-06T11:13:16.383 に答える
0

コードを実行する前に、CSをDSに移動する必要があります。

.code
start:
    push cs ; <-- important!
    pop ds ; <-- important!
    ; -- your codes here --
    mov eax, 9h
    ...
    mov ax, 4C00h
    int 21h
end start
于 2014-04-08T23:35:14.473 に答える