2013-02-24 7 views
-1

tout le monde,assemblage MSNA octets d'alignement limite

Je suis un débutant sur l'apprentissage en langage assembleur NASM. De mon manuel, l'un des exemples de code est le suivant:

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 

Ma question est que je ne sais pas ce que fait la ligne suivante du code ne ... et pourquoi avons-nous besoin de le faire de cette façon:

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

Répondre

2

Sous DOS, les chaînes se terminent par un signe dollar - $ au lieu d'une valeur NULL. 13 est le code ASCII pour le retour et 10 est la nouvelle ligne du code ASCII.

+0

l'ai eu, merci beaucoup !! – shanwu

Questions connexes