如何在显示器上打印一个变量? 就像C中的printf()那样.

dislimit 2003-12-12 11:35:05
如何在显示器上打印一个变量? 就像C中的printf()那样.
...全文
168 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
machinecode 2003-12-14
  • 打赏
  • 举报
回复
@@1 db 'a'



mov dl,@@1
mov ah,02
int 21h


结果就是
a
dislimit 2003-12-13
  • 打赏
  • 举报
回复
问一个题外话.
byte “L= %ld”,13,10,0
dword i,u,c,i,c,s,l
这两句是什么意思啊?(前面没有Label,显然不是变量声明)
xiaofeixia118 2003-12-13
  • 打赏
  • 举报
回复
首先你要明白相关的DOS中断如:INT 1H表示让用户输入一个字符到AL
INT 2H 表示把DL中字符输出到屏幕上。INT 09H表示把以DX里面的地址为首的字

符串输出到屏幕上,直到符号结束
例如:
MOV AH,02H
INT 21H
就是把DL中的字符输出到屏幕上

data segment
buffer db 'hello! $'
data ends
.....
....
mov dx,offset buffer ;DX 为BUFFER的首地址
mov ah,09h
int 21h
就是把HELLO!输出到屏幕
紫郢剑侠 2003-12-12
  • 打赏
  • 举报
回复
一般先用DOS的21H中断的02H(输出单个字符)和09H(输出字符串)来实现.如果变量是数值,还要先转换成对应的ASCII字符串.

要像C中的printf()那样进行变量个数不固定的输出就比较难, 也许能找到高手写好的函数库.
snowdyalan 2003-12-12
  • 打赏
  • 举报
回复
AH 功能 调用参数 返回参数
00 程序终止(同INT 20H) CS=程序段前缀
01 键盘输入并回显 AL=输入字符
02 显示输出 DL=输出字符
03 异步通迅输入   AL=输入数据
04 异步通迅输出 DL=输出数据
05 打印机输出 DL=输出字符
.......
09 显示字符串 DS:DX=串地址
'$'结束字符串

所以你先把要输出的东西根据你预先设定的数据类型MOV进DL或DX
然后mov ah,02h/09h
int 21h
就可以了


dislimit 2003-12-12
  • 打赏
  • 举报
回复
如果我要输出一个字符.那么:
mov ah,02h
int 21h
;然后应该怎么写?

如果要输出字符串呢?

请写个短例子,谢谢!
紫郢剑侠 2003-12-12
  • 打赏
  • 举报
回复
没有.

不过可写个通用过程来实现.
dislimit 2003-12-12
  • 打赏
  • 举报
回复
不是吧?
没有直接打印数值的方法?

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧