table db 50,?,50 dup(?),'$'什么意思?汇编语言的

 我来答
ying影英音
2019-12-02 · TA获得超过1.6万个赞
知道答主
回答量:32
采纳率:100%
帮助的人:8932
展开全部

table db 50,?,50 dup(?),'$'的意思:第一个"50"表示这个字节的ACSII码是50,由ASCII码表得知是字符"2";"?"表示预留一个字节,并不进行初始化,当你输入字符串后,这个字节会自动保存你输入字符串的字符数。

第二个"50"配合dup(?)使用,表示预留50个byte空间,不进行初始化;这里存储输入的字符串"$"是为了配合DOS功能调用里的9功能:显示器输出字符串,以"$"为结束,所以这个$是为了让字符串到这里就结束输出。

#table是这段缓冲区的名字,#db表示操作字节型数据(byte)。

扩展资料:

并非所有的编译器都能利用 CPU 优化和指令集(例如英特尔偶尔添加的新指令集),此时要编写极致效率的程序必须借助汇编语言,毕竟等待编译器更新就意味着失去先发的竞争优势。

与此同时,汇编更容易将实际的程序代码与已知的CPU体系结构和优化相匹配,例如关于获取机制,缓存等方面的知识。这对开发人员来说应该是透明的,但事实上不是,这就是编译器可以被优化的原因。

汇编语言能够编写出更可预测的程序。这是显然的,因为其他高级语言的编译器总是有可能“优化”程序员的代码,使得同一份代码可能会被编译为多种指令。

参考资料来源:百度百科-汇编语言

冰城482
推荐于2019-12-05
知道答主
回答量:3
采纳率:100%
帮助的人:3078
展开全部

最佳答案我实在没看懂,怎么还会有那么多点赞??

一般这个书写模式是为了调用系统DOS功能里的10(0AH)功能:键入并显示字符串.

其中第二个单元里放的是你键入字符串的字符数;

#table是这段缓冲区的名字

#db表示操作字节型数据(byte);

首先定义了52个字节,不是53个:

  1. 第一个"50"表示这个字节的ACSII码是50,由ASCII码表得知是字符"2".

50换成十六进制就是32.这个单元是什么并不重要,只是为了占位的,你可以换成其他数字,对程序并不会有影响.

2."?"表示预留一个字节,并不进行初始化,当你输入字符串后,这个字节会自动保存你输入字符串的字符数.

3.第二个"50"配合dup(?)使用,表示预留50个byte空间,不进行初始化.这里存储你输入的字符串.

4."$"是为了配合DOS功能调用里的9功能:显示器输出字符串,以"$"为结束,所以这个$是为了让字符串到这里就结束输出.

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jdewbh
推荐于2018-05-10 · TA获得超过590个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:350万
展开全部
定义了53个字节,
第1个 50
第2个 ? 第3到第52个 50个重复的 ?
第53个 ASCII码 $,16进制值为 24H
?表示内存中原来是啥就是啥
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式