指令寄存器

opencv 图片特效-灰度2

匿名 (未验证) 提交于 2019-12-03 00:34:01
opencv 图片特效 更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boot 实战(干货) React 入门实战(干货) 构建中小型互联网企业架构(干货) python 学习持续更新 ElasticSearch 笔记 kafka storm 实战 (干货) scala 学习持续更新 RPC 深度学习 灰度处理 方法1 imread #imread #方法1 imread import cv2 img0 = cv2.imread('image0.jpg',0) img1 = cv2.imread('image0.jpg',1) print(img0.shape) print(img1.shape) cv2.imshow('src',img0) cv2.waitKey(0) 方法2 cvtColor #方法2 cvtColor import cv2 img = cv2.imread('image0.jpg',1) dst = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 颜色空间转换 1 data 2 BGR gray cv2.imshow('dst',dst) cv2.waitKey(0) 方法3 RGB R=G=B = gray (R+G+B)/3 import cv2 import

8259中断控制

匿名 (未验证) 提交于 2019-12-03 00:29:01
8259 1. 掌握8259中断控制器的工作原理。 2. 学习8259的应用编程方法。 3. 掌握8259级联方式的使用方法。 PC机一台,TD-PITE实验装置一套。 Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。 TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的内部连接及外部管脚引出如图4.5: 图 4.1列出了中断控制单元的寄存器相关信息。 寄存器 口地址 功能描述 ICW1 ICW1 (只写) 0020H 00A0H 初始化命令字 1 决定中断请求信号为电平触发还是边沿触发。 ICW2 ICW2 (只写) 0021H 00A1H 初始化命令字 2 包含了 8259 IR0 1 IR1 ICW3 (只写) 0021H 初始化命令字 3 用于识别从 8259 IR 8259 8259 IR2 ICW3 (只写) 00A1H 初始化命令字 3 表明内部从控制器级联到主片的 IR2 ICW4 ICW4 (只写) 0021H 00A1H 初始化命令字 4 选择特殊全嵌套或全嵌套模式

分析Android APK- smali 语言简介

匿名 (未验证) 提交于 2019-12-03 00:14:01
2.1 smali 语言简介 1.smali apk文件通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件。 smali语言是Davlik的寄存器语言,语法上和汇编语言相似,Dalvik VM与JVM的最大的区别之一就是Dalvik VM是基于寄存器的。基于寄存器的意思是,在smali里的所有操作都必须经过寄存器来进行。 2.基本数据类型 B―byte C―char D―double F―float I―int S―short V―void J―long Z―boolean 注意J、Z两个不是对应类型的首字母; 在dalvik字节码中,寄存器都是32位的,能够支持任何类型,Long和Double类型是64位的,需要2个寄存器; V 只能用于返回值类型; 3.数组和对象是引用类型 数组的表示方式是在基本类型前加上前中括号“[”,例如int数组和float数组分别表示为:[I、[F; 对象类型以L作为开头来表示,格式是Lpackage/ClassName;(用分号表示对象结束是必须的),示例: String对象在smali中为:Ljava/lang/String; Class1对象的一个boolean成员表示为:Lcom/disney/Class1;->isRunning:Z Class1对象的一个String对象成员表示为:Lcom/disney

Modbus常用功能码协议详解

匿名 (未验证) 提交于 2019-12-03 00:14:01
Modbus常用功能码协议详解 1)描述:读从机线圈寄存器,位操作,可读单个或者多个; 2)发送指令: 假设从机地址位0x01,寄存器开始地址0x0023,寄存器结束抵制0x0038,总共读取21个线圈。协议图如下: 3)响应: 返回数据的每一位对应线圈状态,1-ON,0-OFF,如下图; 上表中data1表示0x0023-0x002a的线圈状态,data1的最低位代表最低地址的线圈状态,可以理解为小端模式; data2表示地址0x002b-0x0033的线圈状态,如下表: data3表示地址0x0034-0x0038的线圈状态,不够8位,字节高位填充为0,如下表: 1):读离散输入寄存器,位操作,可读单个或多个,协议类似功能码0X01协议,此处省; 1)描述:读保持寄存器,字节指令操作,可读单个或者多个; 2)发送指令: 从机地址0x01,保持寄存器起始地址0x0032,读2个保持寄存器 3)响应: 数据存储顺序 1)描述:读输入寄存器,字节指令操作,可读单个或者多个; 2)发送指令:同03H; 3)响应:同03H; 1)描述:写单个线圈,位操作,只能写一个,写0xff00表示设置线圈状态为ON,写0x0000表示设置线圈状态为OFF 2)发送指令: 设置0x0032线圈为ON; 3)响应: 同发送指令; 1)描述:写单个保持寄存器,字节指令操作,只能写一个; 2)发送指令:

计算机硬件基础知识

◇◆丶佛笑我妖孽 提交于 2019-12-03 00:02:02
2.1 计算机硬件基础知识   2.1.1 计算机系统的组成、体系结构分类及特性       CPU和存储器的组成、性能和基本工作原理     CISC/RISC,流水线操作,多处理机,并行处理     常用 I/O 设备、通信设备的性能以及基本工作原理     I/O 接口的功能、类型和特性     I/O控制方式(中断系统、DMA、I/O处理机方式)   2.1.2 存储系统     虚拟存储器基本工作原理,多级存储体系     RAID 类型和特性   2.1.3 可靠性与系统性能评测基础知识     诊断与容错     系统可靠性分析评价     计算机系统性能评测方法      计算机体系结构分类 :     从 宏观 上按 处理机数量 进行分类,分为单处理系统、并行处理与多处理系统和分布式处理系统。     从 微观 上按 并行程度 分类:最为常见分类方式有:Flynn分类法与冯氏分类法。考试中主要考察的是Flynn分类法。        Flynn分类法 是根据指令流、数据流和多倍性三方面来进行分类的:                计算机硬件组成 :     计算机硬件系统是依照冯·诺依曼所设计体系结构,即包括 运算器 、 控制器 、 存储器 、 输入设备 和 输出设备 五大部件组成。     运算器和控制器组成中央处理器(CPU)      运算器 负责完成算术

lua中复杂表达式的寄存器分配

匿名 (未验证) 提交于 2019-12-03 00:02:01
一、代码中输入的由来 这个来源通常有三个:upvalue、const、local。除了local变量天然对应寄存器之外,另外的const和upvalue在使用的时候都需要专门的指令来加载到寄存器中,因为大部分的机器操作都是基于寄存器实现。这一点在lua-5.3.4\src\lopcodes.h可以看到。当需要使用一个非寄存器变量时,需要先通过luaK_dischargevars来保证它是“万事俱备,只欠寄存器分配”,在luaK_dischargevars函数中,如果变量是在upvalue中,则需要先生成从up列表中加载该变量的机器指令,但是并没有分配寄存器,也即是它的结果可以放在任意寄存器中,之后该表达式的类型为VRELOCABLE void luaK_dischargevars (FuncState *fs, expdesc *e) { …… case VUPVAL: { /* move value to some (pending) register */ e->u.info = luaK_codeABC(fs, OP_GETUPVAL, 0, e->u.info, 0); e->k = VRELOCABLE; break; } …… } 二、复杂表达式的指令生成 以下面表达式为例: a + b * c ,假设b和c都是upvalue,则首先 对于表达式,当需要使用的时候

80x86的硬件基础知识摘要

匿名 (未验证) 提交于 2019-12-02 23:49:02
16位结构的微处理器: 数据总线为16位 主存容量1 MB: 地址总线为20位 (为什么20位对应1MB:1MB = 1024*1024 bytes = 220bytes) 【三种工作模式】 实模式: 8086/8088的工作方式,即存储器分段方式 保护模式: 80286起 ,虚拟存储管理和多任务管理 V86模式: 80386起, 同时模拟多个8086工作 【(程序可见的)寄存器】 通用寄存器:     数据寄存器:       ax:累加器,速度最快       bx:基址寄存器,指示存储器地址       cx :计数器,循环计数       dx:数据寄存器,存放乘除法结果,在I/o中存放端口地址(IO接口寄存器)     地址寄存器:       sp:堆栈指针寄存器,指向栈顶       bp:基址指针寄存器,指向栈中任意数据       si:源变址寄存器       di:目的变址寄存器 专用寄存器:     ip:指令指针寄存器     flags:标志寄存器     zf:零标志,0则置1     sf:符号标志,负号置1     cf:进位标志,有则置1,无符号数溢出判断     of:溢出标志,有则置1,有符号数溢出判断     af:辅助进位标志,低4位有进位则置1     pf:奇偶标志,1的个数为偶数则置1     tf:跟踪标志,单步执行则置1    

ARM 汇编访问 CPSR / SPSR 寄存器 【 msr ,mrs 】

匿名 (未验证) 提交于 2019-12-02 23:43:01
状态寄存器访问过程:读 - 改 - 写 读 CPSR / SPSR 指令【 mrs 】 格式:<opcode><cond> Rn, cpsr/spsr         写 CPSR / SPSR 指令【 msr 】 格式:<opcode><cond> cpsr/spsr , Rn   mrs r0 , cpsr @ 读取 cpsr 中状态放在 r0 中 mov r1 , #0x1F mvn r1 , r1 @ 按位取反在放到 r1 中 and r0 , r0 , r1 @ r1 和 r0 按位与 结果放到 r0 中 清零 r0 中的低 5 λ mov r1 , #1 lsl r1 , r1 , #4 orr r0 , r0 , r1 @ 置 1 第 5 λ 主要改变用户状态 msr cpsr , r0 @ 把 r0 中修改后的数据写入 CPSR 中 , 把 SVC 模式改为 user ģʽ 转载请标明出处: ARM 汇编访问 CPSR / SPSR 寄存器 【 msr ,mrs 】 文章来源: ARM 汇编访问 CPSR / SPSR 寄存器 【 msr ,mrs 】

RISC-V 常见指令

匿名 (未验证) 提交于 2019-12-02 23:32:01
算术运算 add rd, rs1, rs2 x[rd] = x[rs1] + x[rs2] 把寄存器 x[rs2]加到寄存器 x[rs1]上,结果写入 x[rd]。忽略算术溢出。 addi rd, rs1, immediate x[rd] = x[rs1] + sext(immediate) 把符号位扩展的立即数加到寄存器 x[rs1]上,结果写入 x[rd]。忽略算术溢出。 sub rd, rs1, rs2 x[rs1]减去 x[rs2],结果写入 x[rd]。忽略算术溢出。 div rd, rs1, rs2 x[rd] = x[rs1] ÷s x[rs2] 用寄存器 x[rs1]的值除以寄存器 x[rs2]的值,向零舍入,将这些数视为二进制补码,把商写 入 x[rd]。 mul rd, rs1, rs2 x[rd] = x[rs1] × x[rs2] 把寄存器 x[rs2]乘到寄存器 x[rs1]上,乘积写入 x[rd]。忽略算术溢出。 rem rd, rs1, rs2 求余数。x[rs1]除以 x[rs2],向 0 舍入,都视为 2 的补码,余数写入 x[rd]。 neg rd, rs2 把寄存器 x[rs2]的二进制补码写入 x[rd]。 逻辑运算 and rd, rs1, rs2 x[rd] = x[rs1] & x[rs2] 将寄存器 x[rs1]和寄存器 x[rs2

【Java NIO】系统基础

匿名 (未验证) 提交于 2019-12-02 21:53:52
系统硬件 CPU - 中央处理单元 ALU - 算术逻辑单元 PC - 程序计数器 USB - 通用串行总线 总线 总线,贯穿整个系统的一组电子管道,在各个部件间传递字节流信息。 传送定长的字节块,称为字;字中的字节数,称为字长。 处理器 CPU,中央处理单元,是解释/执行存储在主存中指令的引擎。 PC,程序计数器,在任何时间点上,都指向主存中某条机器语言指令(内含其地址)。 寄存器文件,存储设备,CPU的核心。它是一个小的存储设备,由一些字长大小的寄存器组成,这些寄存器每个都有唯一的名字。 ALU计算新的数据和地址值。 从系统通电开始,直到系统断电,处理器一直重复指向相同的基本任务:从PC指向的存储器处读取指令,解析指令,执行指令指示的简单操作,然后更新PC指向下一条指令。 加载 - 从主存中拷贝一个字节或一个字到寄存器,覆盖寄存器原来的内容。 存储 - 从寄存器拷贝一个字节或一个字到主存的某个位置,覆盖这个位置上的原来的内容。 与(And)、或(Or)、非(Not) 组合电路本质上不存储任何信息。它们只是简单地响应输入信号,输出等于输入的某个函数转换。 大多数时候,寄存器都保持在稳定状态(x), 产生的输出等于它的当前状态。信号沿着寄存器前面的组合逻辑传播,产生了一个新的寄存器输入(y), 但只要时钟是低电位,寄存器的输出就保持不变。当时钟变成高电位的时候