
table db 50,?,50 dup(?),'$'什么意思?汇编语言的
table db 50,?,50 dup(?),'$'的意思:第一个"50"表示这个字节的ACSII码是50,由ASCII码表得知是字符"2";"?"表示预留一个字节,并不进行初始化,当你输入字符串后,这个字节会自动保存你输入字符串的字符数。
第二个"50"配合dup(?)使用,表示预留50个byte空间,不进行初始化;这里存储输入的字符串"$"是为了配合DOS功能调用里的9功能:显示器输出字符串,以"$"为结束,所以这个$是为了让字符串到这里就结束输出。
#table是这段缓冲区的名字,#db表示操作字节型数据(byte)。
扩展资料:
并非所有的编译器都能利用 CPU 优化和指令集(例如英特尔偶尔添加的新指令集),此时要编写极致效率的程序必须借助汇编语言,毕竟等待编译器更新就意味着失去先发的竞争优势。
与此同时,汇编更容易将实际的程序代码与已知的CPU体系结构和优化相匹配,例如关于获取机制,缓存等方面的知识。这对开发人员来说应该是透明的,但事实上不是,这就是编译器可以被优化的原因。
汇编语言能够编写出更可预测的程序。这是显然的,因为其他高级语言的编译器总是有可能“优化”程序员的代码,使得同一份代码可能会被编译为多种指令。
参考资料来源:百度百科-汇编语言
最佳答案我实在没看懂,怎么还会有那么多点赞??
一般这个书写模式是为了调用系统DOS功能里的10(0AH)功能:键入并显示字符串.
其中第二个单元里放的是你键入字符串的字符数;
#table是这段缓冲区的名字
#db表示操作字节型数据(byte);
首先定义了52个字节,不是53个:
第一个"50"表示这个字节的ACSII码是50,由ASCII码表得知是字符"2".
50换成十六进制就是32.这个单元是什么并不重要,只是为了占位的,你可以换成其他数字,对程序并不会有影响.
2."?"表示预留一个字节,并不进行初始化,当你输入字符串后,这个字节会自动保存你输入字符串的字符数.
3.第二个"50"配合dup(?)使用,表示预留50个byte空间,不进行初始化.这里存储你输入的字符串.
4."$"是为了配合DOS功能调用里的9功能:显示器输出字符串,以"$"为结束,所以这个$是为了让字符串到这里就结束输出.
第1个 50
第2个 ? 第3到第52个 50个重复的 ?
第53个 ASCII码 $,16进制值为 24H
?表示内存中原来是啥就是啥