首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【计算机系统概论】

第二代程序设计语言:汇编语言 ? 第三代程序设计语言:如何做 第四代程序设计语言:做什么 ?...ISA之上 ISA是最重要的层次 ISA指Instruction Set Architecture,即指令集体系结构,有时简称为指令系统 ISA是一种规约(Specification),它规定了如何使用硬件...数据的机器级表示和处理 计算机 如何获得数据 如何表示数据 如何处理数据 2.1 引入 ? ? ? ? 浮点数的尾数:小数点后面的数字 ? ? ? ?...尾数:小数点后的数字,1.xxxx 例题:二进制到十进制 通常用十六进制数保存科学计数法的浮点数:BEE00000H 转为二进制为:10111110111000000000000000000000...⇒ 转为二进制数 正数12:二进制1100 小数.75:二进制.11 (注意按小数方法换算) ⇒ 1100.11 ⇒ 1.10011×2^3 尾数为10011 指数为3,阶码=指数+偏置常数=3+127

1.1K20

python0022_ python虚拟机_反编译_cpu架构_二进制字节码_汇编语言

这些字节码我们看不懂的cpu能看懂这是属于cpu的机器语言这就是cpu的一条条的机器指令(instruction)​编辑机器指令码都是二进制字节形式的我们尝试把python3.8转化为字节表现形式反汇编...行​编辑第9行​​/48 83​​ 找到上下的对应关系也就是第一条执行的汇编指令subsub对应substract 是减法汇编指令是计算机 cpu 机器指令的助记符查找对应关系​​423000​​ 就是初始化...不移植这是playstation2的架构图cpu是mips架构的​编辑不移植的话就是让x86架构的pc去直接执行这些基于mips架构的的0101......python3.8游乐场我们的python3.8就是这样的一系列的cpu指令可以解释py文件的python3.8 又是如何解释py文件的来着?...跨架构跨平台原理​/usr/bin/python3.8​​ 本身是二进制文件是基于当前操作系统当前架构编译出来的可执行二进制文件不同的架构有不同的编译器不同的编译器编译出来的python3.8是不同的二进制指令序列​编辑​

1.3K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    汇编语言知识总结

    / 进制转换基础 计算机只识别二进制, 汇编中一般使用十六进制表示数据, 使用十六进制是为了方便程序员阅读和开发 二进制和十六进制转换 0101 1100 1001 0010 //二进制 5...C 9 2 //每四位二进制数对应一位十六进制数 在x86汇编代码中,十六进制写法为如下: mov ax,2000H ;h结尾表示十六进制, h不区分大小写 在ARM汇编代码中,十六进制写法为如下...: mov R0,#0x2020202A ;使用0x开头表示 #是固定写法,暂不用理会 数据单位 位 :一个二进制位 字节 :8个二进制位表示一个字节 由于八个二进制位转换成十六进制后是两位十六进制数...装修师傅的计算能力 门牌金属板的宽度(字体大小不变的前提) 在计算机的世界中 装修师傅的计算能力—–>cpu运算能力 门牌金属板的宽度——->地址总线宽度(地址总线数量) 如果对应的cpu是16位的,...g 任意寄存器,内存,立即数 为什么有些汇编语法不一致 C语言外链汇编 新建一个汇编原文件, linux平台.s结尾 ,windows平台.asm结尾 ;外链汇编 ;以下使用的是AT&

    2.8K20

    python0011 - python虚拟机的本质_cpu架构_二进制字节码_汇编语言

    xxd​编辑xxd 可以查看文件的二进制形态dump的本意是(倾倒垃圾)这里指的是转储把文件转储为16进制形式汇编代码形式​:xxd –r​​ 可以还原回去 ​​:%!...第9行​​/48 83​​ 找到上下的对应关系也就是第一条执行的汇编指令减法(sub)汇编指令是计算机 cpu 机器指令的助记符查找对应关系​​423000​​ 就是初始化(init)的 cpu 开始执行指令的地址我们在上面查找...不移植这是playstation2的架构图cpu是mips架构的​编辑不移植的话就是让x86架构的pc去直接执行这些基于mips架构的的0101...就像让一个意大利泥瓦匠看一份中文写成的烹饪书来砌墙鸡同鸭讲驴唇不对马嘴...python3.8就是这样的一系列的cpu指令可以解释py文件的python3.8 又是如何解释py文件的来着?...可以运行在不同的cpu架构和系统上所以同样的py文件被加载之后python程序可以对py文件跨架构、跨系统进行解释执行一次编写到处运行​编辑不同的架构二进制对应的汇编指令都不一样怎么能正确解释执行同样的

    1K50

    【计算机本科补全计划】指令:计算机的语言(MIPS) --计算机组成原理

    正文之前 今天的主题就是,重新学一次汇编语言,不过总感觉跟单片机的汇编语言没啥差别,不过就是地址变宽,然后一些限制多了不少,因为计算机要进行大量的运算,所以更加全面并且更加开阔吧,毕竟单片机只是嵌入式常用...(MIPS讲述) ---- 2、在MIPS体系结构中,对寄存器和存储器的操作如下: 寄存器的大小为32位,由于32位为一组的情况很常见,所以称之为 “字(word)”,另外由于MIPS使用字节编址,所以连续的地址字的地址也就相差...---- 5、在MIPS汇编语言中,有如下几个通行定理: 对立即数(也就是常数1,2··· 这些存放在存储器中的数据)的操作一般都是相对于对寄存器操作的指令加上一个i(immediately),对于无符号数则加上一个...然后你再算相反数的补码表示,就会发现,好神奇哟~~ ---- 8、计算机中的指令其实是早期的计算机工程师们为了方便自己编程而实现的,但是计算机本质上是只接受二进制语言的,也就是机器语言,所以所有的指令语言都存在一个转换过程...好处就是程序可以被当成二进制数的文件发行) 指令用数的形式表示 和数据一样,程序存储在存储器中,并且可以读写。

    2.1K70

    汇编语言系列教程之基础入门 (一)「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 机器字长   机器字长是指CPU一次运算所能处理的数据的位数,一般来说这个数的和CPU的通用寄存器长度、数据总线的宽度等相等,在8086中为16bit。...相比较而言,MIPS系列的CPU则相对较晚才出现,这一系列的CPU一出现就是32位的CPU,所以MIPS系列中所谈的机器字长位32bit。...其实这在计算机的存储层面和汇编语言的处理层面是没有这部分的区别的,有符号和无符号都统一处理(无区别对待)。它们到了C语言层面表现的不同是因为上层对它们的解释不同而已。...主要原因是上层的解释不同。   就这部分,推荐大家在C语言中除非特别确定,否则尽量不要使用unsigned,尤其是以为这部分数据不会出现负数而使用unsignd,可能会出现严重的问题。...frac可以通过调整exp保证其介于[1.0, 2.0)之间,比如将某数转换为二进制后其二进制表示为 111.0011 那么将exp加2后,这个数便可以写为1.110011。

    62430

    MIPS架构深入理解11-向MIPS移植软件之编程语言

    另外,MIPS架构使用了大量的CP0寄存器,我们也可以使用C语言的伪汇编asm()方法进行操作。 1 封装汇编代码 对于GCC编译器,几乎是家喻户晓,其允许在C文件中封装汇编代码。...如果,想要写一个高效计算的库函数之类的,可以使用纯MIPS汇编语言进行编写;但是,如果只是想在某个C文件中,插入一小段汇编语言,可以使用asm()伪指令实现。...下面这段伪汇编代码实现的mymul乘法函数,使用了三目乘法指令mul,只保存double型结果的低有效部分到p变量中,高有效部分被抛弃。由我们自己决定如何避免溢出或者其它不相干的事情。...使用static进行限定,不允许其它模块文件调用该函数,所以,不会生成这个函数本身的二进制代码。封装asm()代码时,经常会这样干。然后,将这个伪汇编代码放到某个include文件中。...但是,需要特别注意的是signed类型比较时的bit16的溢出问题。 还有就是,使用两个16位整型数拼凑成一个32位整型数时,一定要使用无符号16位整型数。

    1.2K30

    计算机系统性能评价

    计算机系统性能评价 非时间指标 1)机器字长:指机器一次能处理的二进制位数 由加法器、寄存器的位数决定 一般与内部寄存器的位数相等(字长) 字长越长,表示的数据的范围就越大,精确度越高 目前常见的有...32位和64位字长 2)总线宽度:数据总线一次能并行传送的最大信息位数 [format,png] 一般指运算器与存储器之间的数据总线位数 有些计算机内部与外部数据总线宽度不一致 8086、80286、...存储带宽:指单位时间内与主存交换的二进制信息量,常用单位B/s(字节/秒)。...总指令数 × CPI × T 考虑MIPS后的CPU时间:   MIPS = 指令数量 / (执行指令的时间 × 106)   程序执行的时间 t = 指令数量 / (MIPS ×...如何合理利用时间指标评测计算机性能 - f、CPI、MIPS、CPU时间在评价计算机性能方面的特点和不足? - 如何科学合理测试计算机系统的综合性能?有哪些常用测试工具?

    98787

    计算机组成原理:第一章 计算机系统概论

    处理机字长:指处理机运算器中一次能够完成二进制数运算的位数,如32位、64位。 总线宽度:一般指CPU中运算器与存储器之间进行互连的内部总线二进制位数。...存储器容量:存储器中所有存储单元的总数目, 通常用KB、MB、GB、TB来表示。 存储器带宽:单位时间内从存储器读出的二进制数信息量,一般用字节数/秒表示。...用下式计算: CPI = 执行某段程序所需的CPU时钟周期数 + 程序包含的指令条数 MIPS (Million Instructions Per Second)的缩写,表示平均每秒执行多少百万条定点指令数...,用下式计算: MIPS = 指令数 + (程序执行时间 * 10^6) FLOPS (Floating-point Operations Per Second) 的缩写,表示每秒执行浮点操作的次数...),计算机中通常采用二进制数,运算器长度一般是8、16、32、64位。

    56910

    MIPS架构深入理解7-汇编语言理解

    如果想要深入研究汇编程序如何编写,请参考所使用的MIPS工具链的说明文档。...汇编器将这种最常见的操作转换为or d,zero,s。 9.3.2 立即数运算 在汇编或者机器指令中,编入指令中的常数称为立即数。许多算术和逻辑运算使用16位立即数替换t。...虽然使用立即数的操作和不使用立即数的操作指令不相同,比如addu和addiu(立即数)。...当32位的立即数值位于±32K之内时,汇编器使用单条指令addiu加上$0寄存器实现li指令语句;如果立即数的16-31位都为0,则使用ori指令实现li指令;如果立即数的0-15位都为0,则可以直接使用...符号说明 上图的右边还有一些特殊的符号,如下表所示。这是由链接器自动生成的一些符号,用来程序方便查找起始和结束位置的。是类Unix系统流传下来的习惯。当然,也有一些是MIPS架构特有的。

    3.4K20

    如何使用Selenium WebDriver查找错误的链接?

    在Selenium WebDriver教程系列的这一部分中,我们将深入研究如何使用Selenium WebDriver查找断开的链接。...链接断开和HTTP状态代码 当用户访问网站时,浏览器会将请求发送到该网站的服务器。服务器使用称为“ HTTP状态代码”的三位数代码来响应浏览器的请求。...如何使用Selenium WebDriver查找断开的链接? 不论Selenium WebDriver使用哪种语言,使用Selenium进行断开链接测试的指导原则都保持不变。...在本Selenium WebDriver教程中,我们将演示如何使用Selenium WebDriver在Python,Java,C#和PHP中执行断开的链接测试。...Selenium在网页上查找错误的链接", "name" : "[Python] 使用Selenium在网页上查找错误的链接", "platform" : "Windows 10", "browserName

    6.7K10

    汇编语言之MIPS汇编

    MIPS汇编中的分段处理 .data #数据段 .text #代码段 传送指令 加载立即数指令 li li(load immediate) :用于将立即数传送给寄存器 li $t0,1 ;十六进制数据使用..., 如果改变该值可以让指令跳转到我们想要跳转的地方 如何修改pc寄存器中的值 使用以下转移指令 jr指令 jal指令 j指令 内存数据的读写 从指定内存中读取数据 从内存中读取数据的宽度取决于寄存器的大小...+colIndex)*dataSize 实际地址=首地址+(第几行*总列数+第几列)*数据占用的宽度 比如:我要计算arr[2][1]的实际物理地址, 那么 实际地址=0x00000000+(2*3...+(1*3+2)*4=0x00000000+0x00000014=0x00000014 使用mips汇编实现二维数组定义 #需求:实现int a[3][3] = {{1, 2, 3}, {5, 6, 7...getAddr: #实际地址=首地址+(第几行*总列数+第几列)*数据占用的宽度 mul $a1,$a1,3 add $a2,$a2,$a1 mul $a2,$a2,4 add $v0,$a2

    9.8K31

    MIPS架构深入理解8-向MIPS移植软件之大小端模式

    编程语言 对于语言,当然大部分时候使用C语言了。但是,对于MIPS架构来说,有些事情可能使用汇编语言编写更好。...讲解这部分内容的时候,主要涉及inline汇编、内存映射I/O寄存器和MIPS架构可能出现的各种缺陷。...1960年代之前的电脑都是按照WORD大小进行组织:包括指令,整型数和内存宽度都是WORD大小。所以,不存在字节序的大小端问题。...任何小于总线宽度或没有按照总线宽度进行排列的数据,在总线上传输时,都会被破坏顺序,并按照总线宽度发生字节交换。这看上去要比软件问题严重。...之所以选择位编号一致的方法是因为,MIPS的指令都是按位进行编码的(32位指令集宽度)。这样的话,存放代码指令的ROM,不管是大端模式的CPU,还是小端模式的CPU都有意义。

    2K10

    临时抱佛脚之计组知识点

    计算机层次结构 应用程序-高级语言-汇编语言-操作系统-指令集架构层-微代码层-硬件逻辑层 3....计算机性能指标 非时间指标 【字长】机器一次能处理的二进制位数 ,常见的有32位或64位 【总线宽度】数据总线一次能并行处理的最大信息位数,一般指运算器与存储器之间的数据总线的位数 【主存容量】主存的大小...指令时间控制: 机器周期数 节拍数 同步方式 实践 定长指令周期 不变 不变 按机器周期 mips单周期 变长指令周期 变 变 按时钟周期 mips多周期 ? 4....总线性能和总线事物 总线的性能参数 总线频率:总线工作速率f,单位是MHz 总线宽度:数据总线的宽度w,单位是bit 总线传输速率:总线传输数据量BW,单位是MB/s。...Architecture):最早指定的总线技术标准,总线宽度8/16位,频率5-8MHz,带宽5-8MB/s EISA:宽度变成32位 VESA:宽度变成64位 PCI(PCIe) - AGP 主要用于系统总线和

    88110

    【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 反汇编二进制机器码 | 打印反汇编数据 )

    文章目录 一、反汇编二进制机器码 二、打印反汇编数据 一、反汇编二进制机器码 ---- 在创建 Capstone 实例对象 , 并设置 detail 属性为 True ; 在之前读取了 节区 二进制数据..., 这些数据就是需要反汇编的机器码数据 ; 调用 反汇编解析器 的 disasm 方法 , 向汇编解析器中传入 节区数据 对应的 二进制数据 , 这些二进制数据都是机器码数据 , 即 , 需要反汇编这些二进制数据为...汇编 代码 ; 第一个参数设置二进制数据 ; 第二个参数指的是读取 raw 二进制数据的起始地址 , 一般设置 0 即可 ; 调用 反汇编解析器 的 disasm 方法 , 得到的是反汇编后的汇编代码列表...对应的 二进制数据 , 这些二进制数据都是机器码数据 # 即 , 需要反汇编这些二进制数据为 汇编 代码 # 第一个参数设置二进制数据...# 第二个参数指的是读取 raw 二进制数据的起始地址 , 一般设置 0 即可 # 得到的是反汇编后的汇编代码列表 , 如果反汇编失败 , 此处为空 disasm

    78810

    基于Qt实现的带图形界面的MIPS汇编指令的编辑器、汇编器、反汇编器、模拟器

    MIPS-sc MIPS-sc 为 MIPS simulator&compiler 的简称,是一个基于Qt实现的带图形界面的MIPS汇编指令的编辑器、汇编器、反汇编器、模拟器。...; 支持部分伪指令; 支持 .asm 汇编文件汇编为 .bin 文件; 支持 .bin 文件反汇编为 .asm 文件,支持加载 .bin 文件并执行: 支持模拟运行机器码,支持模拟终端输入输出 支持简单的调试功能...在编辑器输入代码后可以使用 ”simulate“ 按键进行编译和将机器码加载到内存,可以通过step按键单步执行内存中的指令、或设置断点进行连续执行,代码将会执行至断点处停止。...C语言实现的将MIPS汇编指令转换为机器码,或进行反汇编 公共头文件compiler.h: compile.c 实现了将输入的源代码文件转换为二进制数组; decompiler.c 将一条机器码反汇编为...MIPS汇编指令 singleCompiler.c 将一条MIPS汇编指令编译为机器码(可单独调用) c++实现的模拟器类: simulator.h simulator.cpp Qt

    1.2K40

    Mac上最强大的反汇编软件,IDA Pro 7 for Mac 完美激活版为你开启逆向之旅!

    本文将介绍IDA Pro 7 for Mac的功能和特点。图片功能介绍:1.反汇编功能IDA Pro 7 for Mac具有反汇编功能,可以将已编译的二进制文件转换成汇编代码,帮助用户进行分析和理解。...同时,IDA Pro 7 for Mac还支持多种体系结构的反汇编,如x86、ARM、MIPS等。...2.调试功能IDA Pro 7 for Mac还具有强大的调试功能,可以帮助用户查找和调试代码中的错误。它可以与GDB、LLDB等调试器集成,为用户提供了完整的调试工具链。...4.图形化界面IDA Pro 7 for Mac的界面友好,使用起来非常方便。它支持多窗口和多标签页面,用户可以根据自己的需要灵活进行操作。...图片IDA Pro 7 for Mac是一款交互式反汇编工具,是Hex-Rays公司的旗舰产品,主要用在反汇编和动态调试等方面,支持对多种处理器的不同类型的可执行模块进行反汇编处理,具有方便直观的操作界面

    3.1K20

    —— 踩着硬件的鼓点,掌握计算机的精髓

    汇编语言在不同的领域和应用场景中有着不同的重要性,也在大学基础教程中起着不可或缺的作用,例如: x86汇编:PC机上最广泛使用的汇编语言,应用于操作系统、编译器、驱动程序等方面。...ARM汇编:移动设备和嵌入式系统上广泛使用的汇编语言,应用于单片机、嵌入式操作系统、物联网等方面。 MIPS汇编:应用于路由器、游戏机、数字信号处理等领域。...汇编语言和机器语言的关系 机器语言和汇编语言,两者都是计算机能够理解和执行的指令序列。 机器语言是由二进制代码组成的指令集,它直接与计算机硬件进行交互,对硬件进行控制和操作。...我们先看汇编语言的工作流程: 编写汇编语言程序:使用汇编语言编写指令序列,描述程序需要执行的操作和控制流程。 汇编程序:汇编器把汇编语言程序翻译成机器语言指令,生成目标代码文件。...指令和数据都是二进制数 计算机的存储单元 计算机当中的存储单元指储存和读取数据的基本单元,主要包括以下几种类型: 寄存器:位于CPU内部的存储单元,用于暂存指令和运算的数据。

    54420

    重学计算机组成原理(4)-还记得纸带编程吗?

    计算机或说CPU本身,并没有能力理解这些高级语言,即使在2019年的今天,我们使用的现代个人计算机,仍然只能处理所谓的“机器码”,也就是一连串的“0”和“1”这样的数字。...在Linux上,可使用gcc和objdump,把对应的汇编代码和机器码都打印出来。...汇编器是怎么把对应的汇编代码,翻译成为机器码的。 不同CPU有不同指令集,对应不同的汇编语言和不同的机器码。 为方便快速理解机器码的计算方式,选用最简单的MIPS指令集,看机器码是如何生成的。...MIPS是一组由MIPS技术公司在80年代中期设计出来的CPU指令集。最近,MIPS公司把整个指令集和芯片架构都完全开源了。想要深入研究CPU和指令集的同学,推荐一些资料。...一般把对应的二进制数,用16进制表示。这里0X02324020。这个数字也就是这条指令对应的机器码。

    68920
    领券