Python Hacking 基础知识1.1、调试[0]模式:用户模式,内核模式[0] WinDbg OllyDbg PyDbg Immunity1.2、通用cpu寄存器 :EAX, EDX, ECX, ESI, EDI, EBP, ESP,EIP和EBXEAX 寄存器也叫做累加寄存器 EDX 寄存器也叫做数据寄存器 ECX 寄存器,也叫做计数寄存器 ESI 寄存器是源操作数指针,存
二、寄存器2.1 通用寄存器8086CPU寄存器是16位的,可以存放两个字节通用寄存器:用于存放一般数据,有AX BX CX DXAX――累加(Accumulator),使用频度最高 BX――基址寄存器(Base Register),常存放存储地址 CX――计数(Count Register),常作为计数 DX――数据寄存器(Data Register),存放数据为了兼容之前8位的寄存器
python基础 14 类的三大特性 (继承,多态,封装)1.继承①什么是继承继承是一种创建新类的方式,在python中,新建的类可以继承一或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass
文章目录前言一、寄存器1.二进制加法2.记忆单元3.寄存器二、CPU的操作1.简单流程2.硬件,软件3.分支预测4.执行函数指令总结 前言从结构上来讲,CPU的寄存器组,用来保存运算的中间结果,ALU(算术逻辑单元)执行逻辑运算,控制指挥运算的各个部件。 从功能上来讲,可以理解成一晶体管,通过电流驱动,高电压时为1,低电压时为0,形成一开关,在这个基础上搭建积木,当CPU一秒可以执行4*1
寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。8086系统,有14通用寄存器:AH+AL=AX(accumulator,累加寄存器) BH+BL=BX(base,基址寄存器) CH+CL=CX(count,计数寄存器) DH+DL=DX(data,数据寄存器) ,以上的AX、BX、CX、DX为16位通用寄存器,分别由两个 8位寄存器组成,两个8
private short ReversalHighLowByte(short val) { byte[] arrSrc = BitConverter.GetBytes(val); byte[] arrDst = new byte[arrSrc.Length]; arrDst[0] = arrSrc
C#
原创 2022-12-10 10:49:50
537阅读
# 如何实现Java两个int高低位 ## 一、流程表格 | 步骤 | 描述 | | :--: | ---- | | 1 | 将要处理的int拆分为高低位 | | 2 | 将高位和低位合并为一新的int | ## 二、具体步骤 ### 步骤一:拆分高低位 #### 代码示例 ```java // 引用形式的描述信息 int number = 12345; // 要处理的int int
原创 2024-03-02 04:12:14
137阅读
内存中字的存储用16位寄存器来存储一字,一字要用两个地址连续的内存单元来存放(一单元存放一字节),⚠️其顺序是高-高,低-低,即小端法。字单元概念:即存放一字型数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节,取低地址内存单元地址为字数据地址。n地址字单元:起始地址为n的字单元。 ds和【ad
标志寄存器80X86的标志寄存器的结构如下部分标志位说明ZFZF==Zero Flag,是零标志位,记录指令执行结果是事为零。如果一条指令执行后结果为零,ZF置位,也就是ZF的值为1,否则为0 。比如mov ax,1 sub ax,1 ax-1=0,所以ZF=0 。 PFPF==Parity Flag,奇偶标志位,相关指令执行后,结果寄存器是所bit位中的1的个数是否为偶数,如果为偶数,PF=1
标志寄存器的典型指令adc指令sbb指令cmp指令检测比较结果的条件转移指令DF标志和串传送指令pushf和popf标志寄存器在Debug中的表示 adc指令adc是带进位加法指令,它利用了CF位上记录的进位值指令格式:adc 操作对象 1,操作对象 2功能:操作对象1=操作对象1+操作对象2+CF比如指令 adc,ax,bx 实现的功能是:(ax)=(ax)+(bx)+CFCPU为什么要提供这
程序计数寄存器(Program Counter Register)这里并非广义上所指的物理寄存器,或许将其翻译为PC计数会更加贴切,并且也不容易引起一些不必要的误会。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。作用:PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。特性:它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域在JVM
     最近有用到modbus协议,就把之前原来收集的资料全都拿出来又复习了一遍。发现以前了解的也忘了差不多了。所以这次理解了赶紧做个总结,省的下次再忘记了。   modbus完整支持很多功能码,但是实际在应用的时候常用的也就那么几个。具体如下:    0x01: 读线圈寄存器&nbsp
转载 2024-02-04 09:34:05
212阅读
AXI握手时序优化——pipeline缓冲skid buffer(pipeline缓冲)介绍背景需求与模块定义数据路径控制路径 skid buffer(pipeline缓冲)介绍  解决ready/valid路握手的时序困难,使路径流水线化。   只关心valid时序参考这篇写得很好的博客链接: 握手协议(pvld/prdy或者valid-ready或AXI)中Valid及data打拍技
转载 2023-09-04 11:00:03
572阅读
一、存储映射:给存储分配地址。存储器重映射:给存储再分配一地址存储的地址空间有4G,被平均分为8块。  block0设计成FLASHblock1设计成内部SRAMblock2设计成片上外设(根据外设的总线速度不同,block被分成了APB和AHB,APB被分为APB1和APB2)二、寄存器映射在block2中,设计成片上外设,四字节为一单元,共32bit(4*8)
一、寄存器寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。1、寄存器的特性:1)寄存器位于CPU内部,数量很少,仅十四个;2)寄存器所能存储的数据不一定是8bit,有一些寄存器可以存储16bit数据,对于386/486处理中的一些寄存器则能存储32bit数据;3)每个内部寄存器都有一名字,而没有类似存储的地址编号。2、寄存器的分类:1)数据寄存器:数
# Java实现Modbus RTU通讯 读两个寄存器 Modbus是一种通信协议,用于在不同设备之间进行通信。Modbus RTU是Modbus协议的一种常见变体,采用二进制编码方式进行数据传输。在本文中,我们将介绍如何使用Java语言实现Modbus RTU通讯,并读取两个寄存器的数值。 ## Modbus RTU简介 Modbus RTU协议是一种串行通信协议,通常用于工业控制领域。它
原创 2024-06-01 05:55:56
299阅读
在Java编程中,有时我们需要将两个 `byte` 合并成一高低位的 `byte`。这涉及到位操作和数据处理,是许多底层编程任务中的基本需求。下面将详细介绍如何解决这一问题,并涵盖环境预检、部署架构、安装过程、依赖管理、服务验证以及迁移指南等多个方面。 ### 环境预检 在进行编程之前,我们需要确保我们的环境满足以下的系统要求: | 系统要求 | 版本 | |---
原创 7月前
24阅读
# Python 中的寄存器 (Register) 使用 ## 寄存器的概念 在计算机科学中,寄存器是一种用于存储和操作数据的小型存储设备。它位于中央处理 (CPU) 内部,用于临时存储和处理指令和数据。 寄存器具有以下特点: - 速度快:寄存器位于 CPU 内部,与其他存储设备相比,其访问速度更快。 - 大小有限:每个 CPU 都有一定数量的寄存器,其大小通常是固定的,因此寄存器的容量有
原创 2023-08-27 11:14:23
224阅读
ARM程序状态寄存器Program State RegisterCPSRSPSR结构解析 ARM程序状态寄存器Program State Register在ARM模式中, 有16数据寄存器和1或2状态寄存器是可以随时访问的.在特权模式 (privileged mode) 下, 对应的特殊组寄存器才可以使用.CPSR当前程序状态寄存器 (Current Program State Regist
Efuse--芯片存储1、Efuse是什么Efuse类似于EEPROM,是一次性可编程存储,在芯片出场之前会被写入信息,在一芯片中,efuse的容量通常很小,一些芯片efuse只有128bit。2、efuse的作用Efuse可用于存储MEM repair的存储修复数据,也可用于存储芯片的信息:如芯片可使用电源电压,芯片的版本号,生产日期。在厂家生产好die后,会进行测试,将芯片的信息写到efu
  • 1
  • 2
  • 3
  • 4
  • 5