SIC/XE 我可以将新值赋给已有值的值吗?
SIC/XE Can I put new value to a value that already has its own value?
您好,我正在我的大学上使用系统软件 class,我正在使用 SIC 编写汇编代码。我已经用 C 编写了代码。所以我正在将它翻译成 SIC,并且我有一个关于 SIC 变量策略的问题。
我可以重复使用 population 来存储计算出的数字吗?就像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 似乎不支持这样的多个部分。大概它组装的所有东西都进入一个可修改的部分。
您好,我正在我的大学上使用系统软件 class,我正在使用 SIC 编写汇编代码。我已经用 C 编写了代码。所以我正在将它翻译成 SIC,并且我有一个关于 SIC 变量策略的问题。 我可以重复使用 population 来存储计算出的数字吗?就像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 似乎不支持这样的多个部分。大概它组装的所有东西都进入一个可修改的部分。