gpt4 book ai didi

c - SIC/XE 我能否为已经具有自身值(value)的值赋予新的值(value)?

转载 作者:行者123 更新时间:2023-11-30 16:28:23 26 4
gpt4 key购买 nike

嗨,我正在我的大学上学习系统软件类(class),并且正在使用 SIC 编写汇编代码。我已经用 C 编写了代码。所以我将其翻译为 SIC,并且我有一个关于 SIC 变量策略的问题。我可以重复使用人口来存储计算出的数字吗?就像C变量一样?我认为这太基础了,所以当我用谷歌搜索时找不到答案。谢谢!

int main(void) {
double current_population = 11778;
int birth = 180;
int death= 120;
double immigrant = 53.333;
/*one day is 24 hours, so it's1440 minute
the value of birth and death, immigrant are based on a day.
*/
for (int i = 0; i < 7; i++) {
current_population = current_population + birth + immigrant - death;
printf("%d day의 인구 : %d\n", i + 1, (int)current_population);
}
return 0;
}

这是未完成的sic代码(非常粗糙)

            LDX   ZERO    
LDA population
ADD birth
SUB death
ADD immigrant
STA population
population WORD 11778
birth WORD 180
death WORD 120
immigrant WORD 53

最佳答案

在 SIC 代码中,population 不是变量。它是与地址相关联的名称。汇编代码population WORD 11778告诉汇编器将值11778放入下一个位置的一个字中(按照汇编程序执行汇编代码的顺序)并关联population 与该地址。

那么问题不在于是否可以为population分配一个新值,而是是否可以将新值存储到内存中的该位置。对 SIC 的简要研究表明它是一个非常简单的计算机模型,并且没有提供只读存储器。在这种情况下,是的,您可以将新值存储到 population 的位置。

在生产中使用的典型汇编程序中,而不是类练习中,有在多个部分中准备代码和数据的规定。可能有一个部分用于指令,另一部分用于只读数据,另一部分用于可修改数据,并且可能有其他部分用于特殊目的。汇编器具有指定以下行适用于哪个部分的指令。在这样的汇编器中,如果您定义数据和指令,它将进入代码部分,有时也称为文本部分。加载程序时,代码部分通常被标记为只读。因此该部分的数据在加载后无法修改。要获得可修改的数据,您必须将其放入不同的部分。

SIC 似乎不支持这样的多个部分。据推测,它组装的所有内容都会进入一个可修改的部分。

关于c - SIC/XE 我能否为已经具有自身值(value)的值赋予新的值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52389329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com