汇编语言字符串和$的问题

密斯刘 2009-10-22 02:29:42
一、汇编语言中字符必须以$结尾吗?
二、$可以作为字符串的内容吗?是不是像C语言一样存在转义字符来显示$呢?
三、如果计算长度的话$算吗?

我写了这个字符串123456$$$$$
输出这个字符串,但是
输出结果是123456
...全文
1283 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesea147 2011-09-26
  • 打赏
  • 举报
回复
我也在看这玩意儿.好像还有以0 (值,不是字符)结尾的啊
shun_qizi_ran 2009-10-23
  • 打赏
  • 举报
回复
$是不可显示的字符啊
zzqlord 2009-10-23
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
j8727 2009-10-22
  • 打赏
  • 举报
回复 1
一、不是必须以$结尾
二、$可以作为字符串的内容
三、看具体情况
1.如果你显示字符串是用DOS功能调用INT21H 09,那么需要用到$结尾,计算长度是计算到$之前的那个数字,后面的不计算,此时$不为字符串内容。
2.如果你用DOS功能调用INT21H 02来一个字符一个字符地显示字符串内容,那么$会被认为是字符串的一部分。同样如果你用BIOS功能调用INT10H 0EH或者0AH来一个字符一个字符地显示字符串内容,那么$会被认为是字符串的一部分。(0AH时显示字符后光标不前移,要求自己写代码来移动光标)
3.如果你用BIOS功能调用INT10H 13H来显示字符串,不需要用到$结尾,如果用到会将$认为是字符串一部分。

LZ用的是INT21H 09H调用吧。
至于为什么INT21H 09H会以$作为字符串结尾,其实很简单,这个子程序就是这么写的,里面判断$作为字符串的结束。LZ可以自己拿INT21H 09H的子程序来看。
不写$不会影响编译和执行,只是在输出结果时会在预期的结果后显示些乱码,可能还会发出声音哦,如果碰巧碰到内存里有个$,那么停止显示。
geekblizzarddc 2009-10-22
  • 打赏
  • 举报
回复
在dos下是以$结尾。因为你要调用dos中断所以要用$结尾。

21,459

社区成员

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

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