【问题标题】:NASM assembly byte boundary alignmentNASM 汇编字节边界对齐
【发布时间】:2013-02-24 04:36:31
【问题描述】:

大家,

我是学习 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) = ', '$'

【问题讨论】:

    标签: assembly nasm


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2016-12-19
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      • 2015-03-10
      相关资源
      最近更新 更多