[bits 16]
org 100h
; common mynum 1
section .text
start:
;; -------------------- 1 -------------------------------
mov dl, 'A'
mov ah, 2 ; single char use
int 21h
mov DL, 13 ; 回车
mov ah, 2 ; single char use
int 21h
mov DL, 10 ; 换行
mov ah, 2 ; single char use
int 21h
;; --------------------------------------------------------
mov cx, len
mov dx, info
mov ah, 09h
int 0x21
mov ax, 4c00h ; 返回DOS
int 21h
section .data
hello:
info db 'this is a demo program running under DOS!',13,10,$
len db $-hello
我使用的编译器是:nasm
运行环境是:dosbox 0.74
编译命令: nasm -f bin -o xx.com xx.asm
===================================
疑问:
为什么,我删除第一部分,第二部分(显示字符串)会出现乱码,好像都乱了
但是,看中断说明显示字符串只需要指定dx为字符串的首地址,也就是DS:DX能够定位到字符串就可.
难道说,显示字符串不是这样写么?
新手求教,谢谢!
------解决思路----------------------
info 末尾的那个 $ 应该是字符,两边要用单引号成 '$'
有第一部分正常,纯属巧合,要是将第一部分增加或去除些指令,$ 所表示的当前地址以及 info 的地址就不会是 24h('$') 了。