从零开始打造我的计算机系统【运行效果】

本文分享了一款简易CPU的设计与实现过程,该CPU成功运行了1至100求和程序并得到正确结果5050。文章详细介绍了汇编程序的工作原理及如何通过驱动程序例程调用汇编文件并加载到指定内存地址。

无论如何一个简易的CPU是写完成了,运行了一个简单的例子,1到100的和,最终得出结果5050,好激动。

汇编程序sum.s如下:

.org 0x7c00
xor $r1,$r1,$r1
ori $r1,$r1,1
xor $r2,$r2,$r2
xor $r3,$r3,$r3
ori $r3,$r3,100
load $r4,flag
flag:add $r2,$r2,$r1
     addi $r1,$r1,1
     gt $r1,$r3,end
     jmp $r4
end: int 1
     halt

首先,驱动程序例程(main.c)调用assembly把sum.s汇编成sum.o

然后加载程序把sum.o加载到0x7c00处(实现经典吗。)

#include "includes.h"
int main()
{
    h = InitializeTable(100);
    Initcpu();
    InitMemory();
    InitScreen();

    Assembly("sum.s","sum.o");
    PrintHashTable(h);
    unsigned int file_size = Loader("sum.o",0x7c00);
    PrintMemory(0x7c00,file_size);
    Runcpu();
    getch();
    closegraph();
    return 0;
}

注意最后一行:The sum is:5050

 

 

GUI模式。注意reg[2] = 0x13ba,也就是十进制的5050。

下一步是带保护模式的CPU,我已经累觉不爱了。

转载于:https://www.cnblogs.com/likeyiyy/p/3551577.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值