2013-02-24 123 views
-1

everyone,NASM汇编字节边界对齐

我是学习NASM汇编语言的新手。从我的课本,示例代码的一个是如下:

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) = ', '$' 

回答

2

在DOS中,字符串以美元符号 - $而不是NULL结尾。 13是返回的ASCII码,10是ASCII码新行。

+0

明白了,非常感谢你! – shanwu 2013-02-24 05:00:40