- 博客(3)
- 收藏
- 关注
原创 HNU-计算机系统-实验二
用到了分治法的思想,第一次两位两位的看,用每两位记录多少个1,如果是11,那么结果记录10,10或01记录01,00记录00.接着分别用四位,八位,16位,32位记录多少个1,最后得到的x的值就是32位有多少个1。如果是负数,x会自动向下取整,那就不是向0取整了,所以我们需要设置一个偏移量,加上偏移量结果就会向0舍入。若x可以被n位补码表示,首先符号位占一位,则x的第n位到第31位应该都是无效位,则将x先左移(32-n)位再右移(32-n)位,若与原来的x相同(使用异或来判断),则它的确可以被表示。
2024-04-27 16:29:27 1352
原创 HNU-计算机系统-实验一原型机
开始寄存器均为0,首先输入值4被存入R1,接着将R0设置成1,再让R1与R2相加并存入R2(即R2用于存放累加值),加过R1之后R1与R0相减(即自减一)并设置G值(若减法结果小于等于0,G为0;2.实验二的编译器不是很好,有些函数在dev-c++上运行结果正确,在btest里运行就错了,并且fitbits函数在32位的ubuntu过了,在64位ubuntu运行一直过不了,直到改了makefile里的设置才输出。c-inst.txt概述:输入a与b两个正整数,如果a*b结果小于128,输出正确结果;
2024-04-27 16:18:21 1343
原创 HNU-计算机系统-实验三bomblab(炸弹实验)
炸弹运行的每个阶段要求你输入一个特定字符串,你的输入符合程序预期的输入,该阶段的炸弹就被拆除引信即解除了,否则炸弹“爆炸”打印输出 "BOOM!第四阶段根据我们新开辟的空间里面存放地址的顺序,来重新构建链表的节点顺序,实际上的操作就是更换每一个节点中,存放的下一个节点的地址,来重构链表顺序,注意末尾节点存放的下一个节点的地址为0。直到当前访问的值=15,退出循环,再判断edx的值,进而判断是否访问了15次,最后再判断15个值累加的结果ecx是否等于我输入的第二个参数,等于则顺利结束函数,否则爆炸。
2024-04-27 15:49:32 1890 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人