计算机系统的状态机模型

指令和编码

image
这是我列的大概的思维导图

一个数列求和的例子

0: li r0, 10   # 这里是十进制的10
1: li r1, 0
2: li r2, 0
3: li r3, 1
4: add r1, r1, r3
5: add r2, r2, r1
6: bner0 r1, 4
7: bner0 r3, 7

下面是我自己模拟计算的式子
image
课后思考题:

计算10以内的奇数之和
尝试用上述指令编写一个程序, 求出10以内的奇数之和, 即计算1+3+5+7+9. 编写后, 尝试列出处理器状态的变化过程, 以此来检查你编写的程序是否正确.

我自己列的,不过寄存器稍微开的有些多,浪费了一些内存
image


C语言的数列求和

了解完上面的汇编语句写数列求和后,直接上C语言

/* 1 */ int main() {
/* 2 */   int sum = 0;
/* 3 */   int i = 1;
/* 4 */   do {
/* 5 */     sum = sum + i;
/* 6 */     i = i + 1;
/* 7 */   } while (i <= 10);
/* 8 */   printf("sum = %d\n", sum);
/* 9 */   return 0;
/* 10*/ }

我列出来的状态模型是这样:
image

然后接下来就是一系列数学公式推理ISA和C语言的关系,数电和ISA之间的关系

posted @ 2025-07-15 11:11  Alaso_shuang  阅读(23)  评论(0)    收藏  举报
2 3
4