小编Mic*_*l W的帖子

汇编代码实际上是如何在基础层面上被解释的?

我真的很喜欢从下到上理解编程。所以,我学习了一台微型 64kb 计算机的内部构造,因为我对从晶体管级别理解计算机非常感兴趣。我了解晶体管、多路复用器、解码器的创建、ALU 的创建等。

对于 LC3,我得到了这一点,这是我学到的,像 0001 011 011 100001 等操作码意味着 0001 将被解码为添加指令等。然而,我很困惑我们如何编写汇编来实现这一点。我知道汇编器会翻译 ADD R3、R1、R2 这样的指令并将其转换为机器代码,但真正困扰我的是这些 ASCII 字符如何“解释”为机器代码。

我知道在电子层面如何处理这样的指令,例如 JMP 来更改程序计数器等,但是在基本层面上,汇编指令如何变成机器/二进制?我不明白它是如何从汇编到机器代码的。

我在网上找不到太多信息,但我想到的一个理论是,键入的按键实际上只是发送一个实际上是二进制的电信号,但仍然不明白计算机体系结构如何将这个“ADD”转换为 0001,因为它需要完整地理解 ADD,而不仅仅是每个字符的二进制。那么,将汇编语言转换为二进制并控制逻辑门、解码、符号扩展等的过程是怎样的呢?

编辑:对于那些问我使用哪本书的人,这是计算系统简介:从位和门到 C 及超越第二版(Patt)它从构建 P/N 晶体管的逻辑门到汇编到 C。我不能推荐它对于想要了解整个过程的任何人来说,更多信息。

assembly

6
推荐指数
1
解决办法
2081
查看次数

我是否理解Python的编写/实现方式是否正确?

我想了解Python如何在基础层面工作,这有助于我更多地了解其他编译/解释语言的内部工作原理.不幸的是,编译器类现在有点远了.从我在本网站和其他地方阅读的内容来看,人们回答"用Python编写的基本语言"似乎表明,在谈论语言的"规则"与使用语言规则的方式之间存在差异.那么,说Python(和其他高级语言)本质上只是用任何自然语言"编写"的规则集是否正确?然后,它们实际使用的方式(使用的意思是编译/解释实际创建的东西)可能会有所不同,各种语言被用来实现编译器?所以在这种情况下,CPython,IronPython和Jython在语法上是相同的语言,它们都遵循相同的规则集,只是这些规则是用它们各自的语言实现的.

请告诉我,如果我对此的理解是正确的,如果你有任何补充,可能会进一步巩固我的理解,或者如果我公然错了.

python compiler-construction

5
推荐指数
1
解决办法
146
查看次数

为什么我们需要在c ++中显式声明指针类型?

我正在学习一门非常有趣的CE课程和C++课程.在CE中,我对内存如何工作有了更深入的了解.那么,为什么我们需要在c ++中显式声明指针类型?指针只是一个存储单元(或多个单元),它将地址保存到数据类型; 虽然数据类型显然需要不同的内存分配,为什么要指针?AKA,为什么指针类型不能在C++中泛化,如果它们都拥有相同的东西,内存地址?

c++ memory

0
推荐指数
1
解决办法
89
查看次数

标签 统计

assembly ×1

c++ ×1

compiler-construction ×1

memory ×1

python ×1