-1

みんな、

私はNASMアセンブリ言語を学ぶ初心者です。私の教科書から、サンプルコードの1つは次のとおりです。

ORG 0100H
JMP start
value DW 0
csmsg DB 13,10, 'CS (in hex) = ', '$'
dsmsg DB 13,10, 'DS (in hex) = ', '$'
esmsg DB 13,10, 'ES (in hex) = ', '$'
ssmsg DB 13,10, 'SS (in hex) = ', '$'
spmsg DB 13,10, 'SP (in hex) = ', '$'
;
%include "../mymacro/showbyte.mac"
;
start:
    MOV [value], CS
    MOV DX, csmsg
    CALL show
;
    MOV [value], DS
    MOV DX, dsmsg
    CALL show
;
    MOV [value], ES
    MOV DX, esmsg
    CALL show
;
    MOV [value], SS
    MOV DX, ssmsg
    CALL show
;
    MOV [value], SP
    MOV DX, spmsg
    CALL show
;
    MOV AX, 4c00H
    INT 21H
show:
    MOV AH,09H
    INT 21H
    showbyte value+1;
    showbyte value
    RET

私の質問は、コードの次の行が何をするかわからないということです...そして、なぜこのようにする必要があるのですか:

csmsg DB 13,10, 'CS (in hex) = ', '$'
4

1 に答える 1

2

DOS では、文字列は NULL ではなくドル記号 ($) で終了します。13 は return の ASCII コードで、10 は ASCII コード改行です。

于 2013-02-24T04:49:14.667 に答える