计算机系统的状态机模型
指令和编码

这是我列的大概的思维导图
一个数列求和的例子
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
下面是我自己模拟计算的式子

课后思考题:
计算10以内的奇数之和
尝试用上述指令编写一个程序, 求出10以内的奇数之和, 即计算1+3+5+7+9. 编写后, 尝试列出处理器状态的变化过程, 以此来检查你编写的程序是否正确.
我自己列的,不过寄存器稍微开的有些多,浪费了一些内存

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*/ }
我列出来的状态模型是这样:

然后接下来就是一系列数学公式推理ISA和C语言的关系,数电和ISA之间的关系
本文来自博客园,作者:Alaso_shuang,转载请注明原文链接:https://www.cnblogs.com/Alaso687/p/18985291

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号