首页 > 其他分享 >计算机组成原理 L02 指令集体系结构(ISA)复习-1

计算机组成原理 L02 指令集体系结构(ISA)复习-1

时间:2023-05-28 21:35:21浏览次数:44  
标签:复习 符号 0x90 L02 t0 存入 指令集 寄存器 ISA

计算机组成原理 L02 指令集体系结构(ISA)复习-1

复习-1 用作例题/课后题整理 复习-2 用作理论知识点整理

如何使用大常数

由于大数值范围:[-2^31, 2^31-1],而I型指令常数字段只有16bits,所以需要使用两次I型指令。

  1. 取立即数到寄存器高16位指令 lui->load upper immediate
  2. 与立即数进行逻辑或运算 ori -> or immediate
lui  $t0, 1010101010101010
ori  $t0, $t0, 1010101010101010

有符号数取反

按位取反,再加1

符号扩展

复制最高有效位(符号位)
无符号数:用0填充左边的数位
有符号数:用1填充左边的数位

课堂练习-1

image

lb:将字节存入寄存器的最低 8 bits
sb:将寄存器最低 8 bits存入存储器的字节中

$zero 恒为0。MIPS 是大端法,大端法是正常书写的方法,高位在低地址。

  1. add$s3 置0;
  2. lb 存入 0x1 的地址原有的数据 即 0x90 到 $t0 寄存器 第1题答案0x90
  3. sb 存入 $s3 寄存器的值 0x90 到 0x6 第1题答案0x6 0x90
  4. 小端法 0x6 的值将从 0xFF 到 0x12

课堂练习-2

重新改写下面的指令,以支持更远距离的分支转移

beq  $s0, $s1, L1
//These instructions replace the short-address conditional branch:
	bne $s0, $s1, L2
	j L1
L2:

例子:循环

image

编译C语言:leaf过程

image

嵌套

int fact( int n)
{   
	if (n<1)  return  (1);
	else  return (n * fact(n-1));
}

image

标签:复习,符号,0x90,L02,t0,存入,指令集,寄存器,ISA
From: https://www.cnblogs.com/68786C/p/17438821.html

相关文章

  • 解决laravel环境在Ubuntu下使用php artisan 创建文件后无法在phpstorm中编辑的问题
    一、打开ubuntu运行sudovi/etc/profile.在末尾添加 umask000exportumask摁esc后保存:wq退出重启电脑即可二、或者直接在ubuntu下运行umask000这样创建文件后文件权限直接是777 三、以上两者区别1.第一点防止重启电脑后将umask重置掉2.第二点如果执行此命令的......
  • ISay obj=(ISay)Class.forName(args[0]).newInstance(); obj.say();
    classmainClass{publicstaticvoidmain(String[]args){System.out.println(args[0]);try{ISayobj=(ISay)Class.forName(args[0]).newInstance();obj.say();}catch(InstantiationExceptione){//TODOAuto-generatedcatch......
  • Intel公布全新架构x86S!纯64位模式运行:指令集大幅精简
    在iOS生态中,苹果已经完全淘汰了32位,安卓领域也在加速,设计APP、操作系统、处理器等多方面。而对于PC电脑而言,Intel似乎要“大动干戈”了。Intel已经提出一种全新架构名为x86S,即x86-64ISA简化版,其独特的地方在于纯64bit模式运行的设计。当然,别担心,在技术白皮书中,Intel表示,纯64......
  • python异步字符串查找,asyncio和marisa_trie
     自然语言处理当中经常需要字符串的查找操作,比如通过查找返回字串在文本当中的位置,比如通过匹配实现的nerimportpandasaspdimportasyncio#data=pd.read_csv("guba_fc_result_20230413.csv")data=pd.read_csv("guba_all_post_20230413.csv")filename="cate_gr......
  • [NISACTF 2022]ezpython
    查壳:(后来发现:但凡有这玩意的都和解包有关)32位,运行,发现让我们输入一个key,进IDA:把能找的都找了,愣是没发现什么,除了一个类似base64的编码,实在没办法,去看了大佬的文章,说是py下的exe的解包,跟据大佬们的思路来了一波,果然出来了。开始吧,首先是将该运行文件与pyinstxtractor放一起(这......
  • linux系统异常关机,重启后显示:probing edd (edd=off to disable) ....ok
    机房掉电,linux服务器重启后显示:probingedd(edd=offtodisable)....ok  处理方法一:1、开机选择内核时上下键卡住,根据提示按e进入grub界面2、编辑linux行末尾添加edd=off3、ctrl+x 处理方法二:1、使用U盘进入救援模式,切换命令行界面,挂载系统磁盘chroot/mnt/sysim......
  • centos中 hisat2 软件的安装
     001、下载安装包[root@PC1hisat2]#wgethttps://github.com/DaehwanKimLab/hisat2/archive/refs/tags/v2.2.1.tar.gz 002、tar-xavfv2.2.1.tar.gz##解压cdhisat2-2.2.1/make##编译 003、测试软件./hisat2--versio......
  • [NISACTF 2022]sign-ezc++
    查壳:64位,进IDA:进来后发现c++经常用的std,(当然用c++的也有可能不经常见),跟进伪代码,找输出:有个判断跟进Human::~Human看看:调用了一个方法,字符串又指向了name,跟进方法:off_4863D0:发现存了一个基地址:跟进基地址:_ZN5Human9give_flagEv:进入伪代码:找到我们要拿的东西了,而且自......
  • [NISACTF 2022]string
    查壳:64位:进IDA:进来就给flag:跟进:一堆东西,秉承着赶时间的优良作风,只看有用的输出:挺简单一个随机数问题,找种子就行:上脚本:intmain(){srand(10086);for(inti=1;i<=13;i++){intv4=rand();cout<<v4%8+1;}return0;......
  • 【笔记】跟吴恩达和IsaFulford学提示词工程(初级开发者入门课程)
    标签:#Prompt#LLM创建时间:2023-04-2817:05:45链接:课程(含JupyterNotebook),中文版讲师:AndrewNg,IsaFulford阅读提示这是一篇入门的教程,入门的意思是指大部分内容,可能你都已经知道了,但是知道不等于掌握,Prompt是一门实践经验主义科学,LLM是个黑盒,你只要不断去“实践”才能......