【发布时间】:2016-05-20 20:48:04
【问题描述】:
从低级汇编和体系结构的角度来看,指令中的字符串与数字的处理方式有何不同?我试图从在线课程中了解编译器是如何工作的,但最终不太了解一个字长为 64 位的体系结构如何理解和关联包含一个字符串但不适合的 Unicode 的多个字符一条指令。基于在字符串末尾寻找空字节的体系结构,字符串是否具有完全独立的指令?我相信,理解这一点会使编译器更容易理解。谢谢!
【问题讨论】:
-
它们只是数组。与数字数组没有根本区别。 Unicode 代码点只是一个数字。一种编程语言使它看起来更容易,创造了一个字符串是它自己的对象的错觉。
-
从机器语言的角度来看,它们也只是数字。
-
“字符串末尾的空字节”:是一种特定的数据结构模式,仅由某些语言和库使用。我怀疑它的用途正在扩大。另一种模式是计数代码单元。 (所有文本都有编码,例如UTF-16。)这两种模式都有很长的历史。
标签: string assembly architecture compilation