自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 汇编-数据处理的两个基本问题

数据处理的两个基本问题bx,si,di和bp只有bx,si,di和bp可以放在[ ]中进行内存单元的寻址可以单个出现和组合出现组合的方式:bx + si,bx + di, bp + si, bp + di,bx + si + idata,bx + di + idata, bp + si + idata, bp + di + idata机器指令处理的数据在什么地方数据存放的位置:CPU内部、内存、端口汇编语言中数据位置的表达立即数(idata):直接包含在机器指令中的数据(执行前在CPU

2021-10-30 10:44:24 193

原创 汇编 - 更灵活的定位内存地址的方法

更灵活的定位内存地址的方法and和or指令and:逻辑与指令,按位进行与运算or:逻辑或指令,按位进行或运算ASCII码0 ~ 9:48D ~ 57D;30H ~ 39HA ~ Z:65D ~ 90D;41H ~ 5AHa ~ z:97D ~ 122D;61H ~ 7AH以字符形式给出的数据可以以' '表示字符串,例如 'ABC'大小写转换的问题转换为大写:将字符的第五位清零转换位小写:将字符的第五位置一[bx + idata]mov ax,[bx + 200] = m

2021-10-30 09:10:58 142

原创 汇编-包含多个程序的段

包含多个程序的段在代码段中使用数据如何让这个程序在编译、连接后直接在系统中运行在程序指令前加入start:,end 后面添加 startend start会指明程序的入口,加载程序的程序会设置CS:IP指向程序入口格式assume cs:xxxx segment dw 数据,数据,数据,数据,数据,数据,数据,数据start 指令xx endsend在代码段中使用栈assume cs:xxxx segment dw 数据,数据,数据,数据,数据,数据,数据,数据 dw 0,

2021-10-29 16:11:55 105

原创 汇编 -[BX]和loop指令

[BX]和loop指令[bx]和内存单元的描述如 mov ax,[bx]将一个内存单元的内容送入ax,长度为2个字节,偏移地址在bx中,段地址在ds中loop循环我们定义的描述性的符号:“()”(ax)表示ax中的内容,(al)表示al中的内容(20000H)表示内存单元20000H中的内容((ds)*16+(bx))表示ds中的内容addr1x16 + bx中的内容addr2的地址单元的内容也可以理解为以addr1为段地址,addr2为偏移地址的内容()里面可以有三种元素:寄存器名

2021-10-26 16:55:14 158

原创 汇编 - 第一个程序

第一个程序一个源程序从写出到执行的过程略源程序伪指令伪指令不被CPU执行,是由编译器来执行的指令xxx segmentxxx ends这是一对成对的伪指令,功能是定义一个短,segment开始,ends结束,xxx段名end 标记汇编程序结束assume 将段寄存器和具体的代码段关联源程序源程序 = 伪指令 + 汇编指令标号如:codesg segment,codesg作为一个代码段的名称,这个段的名称最终将被编译、连接程序处理为一个短的段地址程序的结构定义一个段在段中写入

2021-10-26 16:52:31 381

原创 汇编语言-寄存器(内存访问)

寄存器(内存访问)内存中的字的存储略DS和address8086CPU中的DS寄存器,通常用来存放要访问数据的段地址读取10000H单元的内容mov bx,1000Hmov ds,bxmov al,[0]上面3条指令将10000H(1000:0)中的数据读到al中mov指令的使用1、将数据直接送入寄存器2、将一个寄存器中的内容送入另一个寄存器3、将内存单元数据送入寄存器,mov 寄存器名称,内存单元地址字的传送mov、add、sub指令数据段栈CPU提供的栈机制栈顶超界

2021-10-23 14:43:34 628

原创 汇编语言-寄存器

寄存器寄存器是CPU中程序员可以用指令读写的部件,CPU的主要部件是寄存器,程序员通过改变各种寄存器的内容来实现对CPU的控制CPU由运算器、控制器、寄存器等器件构成,器件通过总线连接,第一章描述的地址、控制、命令总线对于CPU内部来说是外部总线,内部总线实现内部各器件连接运算器进行信息处理寄存器进行信息存储控制器控制各器件工作内部总线连接各种器件,在他们之间传输数据8086CPU由14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW通用寄存器

2021-10-22 17:26:38 583

原创 汇编语言-基础知识

基础知识机器语言机器语言 = 机器指令的集合机器指令 = 机器可以正确执行的命令 = 一列二进制数字每一种微处理器,由于硬件设计和内部结构不同,需要不同的电平来控制,所以每一种微处理器都有自己的机器指令集由于机器语言都是一列列二进制数字,不方便维护和管理,且极其容易出错,所以产生了汇编汇编语言的产生汇编语言的主体是汇编指令汇编语言和机器指令的差别在于表示方法汇编指令是机器指令便于记忆的书写格式程序员->汇编指令->编译器->机器语言->计算机汇编语言的组成

2021-10-22 15:22:16 154

原创 MQTT协议C语言实现-接收服务器推送消息处理

目录编程思路简介编程思路简介服务器一次推送的消息可能不止一条,可能是多条消息打包推送的,所以在解读每条消息之前,我们先要解包,把消息逐条提取存放接受的数据 = n个消息组成消息的长度 = 剩余长度 + 剩余长度所占字节 + 1代码实现typedef struct{ u8 message_Cnt; //消息的条数 u16 message_Leng[message_R...

2019-12-27 20:31:09 2116

原创 MQTT协议学习笔记(十)

目录MQTT协议学习笔记(十)PUBLISH报文解析PUBLISH 接受服务器数据固定报头解析可变报头解析有效载荷解析PUBLISH发送消息给服务器发送-固定报头发送-可变报头发送-有效载荷MQTT协议学习笔记(十)PUBLISH报文解析PUBLISH 接受服务器数据首先阿里云进入在线调试,看它会给我们下发什么玩意儿,发送 工作状态,下面是接受的数据30 98 01 00 31 2...

2019-12-21 16:28:58 465

原创 MQTT协议学习笔记(九)

目录MQTT协议学习笔记(九)UNSUBACK报文解析UNSUBACK固定报头UNSUBACK可变报头UNSUBACK有效载荷MQTT协议学习笔记(九)UNSUBACK报文解析UNSUBACK固定报头**UNSUBBACK固定报头的格式与UNSUBACK报文格式保持一致 此处固定为 0XB002 **UNSUBACK可变报头UNSUBBACK可变报头的格式与UNSUBACK报文格式保...

2019-12-20 22:16:46 154

原创 MQTT协议学习笔记(八)

目录MQTT协议学习笔记(八)UNSUBSCRIBE报文解析UNSUBSCRIBE固定报头UNSUBSCRIBE固定报头UNSUBSCRIBE有效荷载MQTT协议学习笔记(八)UNSUBSCRIBE报文解析UNSUBSCRIBE固定报头UNSUBSCRIBE固定报头的格式与SUBSCRIBE报文保持一致UNSUBSCRIBE固定报头UNSUBSCRIBE可变报头的格式与SUBSCRI...

2019-12-20 22:07:41 168

原创 MQTT协议学习笔记(七)

目录MQTT协议学习笔记(七)SUBBACK报文详解SUBBACK固定报头SUBBACK固定报头BYTE1SUBBACK固定报头BYTE2++SUBBACK可变报头SUBBACK有效载荷MQTT协议学习笔记(七)SUBBACK报文详解SUBBACK固定报头SUBBACK固定报头BYTE1SUBBACK固定报头BYTE1 = 0X90SUBBACK固定报头BYTE2++SUBBACK固...

2019-12-20 21:58:30 213

原创 MQTT协议学习笔记(六)

目录MQTT协议学习笔记(六)SUBSCRIBE报文详解阿里云Topic列表介绍SUBSCRIBE固定报头SUBSCRIBE可变报头报文标识符有效载荷MQTT协议学习笔记(六)SUBSCRIBE报文详解阿里云Topic列表介绍POST :广播SET :订阅 (阿里云默认全部定义了)SUBSCRIBE固定报头SUBSCRIBE固定报头 = BYTE1(报文类型) + (剩余长度)固...

2019-12-20 21:23:23 255

原创 MQTT协议学习笔记(五 )

目录MQTT协议学习笔记(四 )PINGREQ报文详解PINGREQ固定报头PINGESP报文详解PINGESP固定报头MQTT协议学习笔记(四 )PINGREQ报文详解PINGREQ仅有固定报头PINGREQ固定报头PINGREQ固定报头固定为 0XC000PINGESP报文详解PINGESP仅有固定报头PINGESP固定报头PINGREQ固定报头固定为 0XD000...

2019-12-20 16:42:40 258

原创 MQTT协议学习笔记(四)

目录MQTT协议学习笔记(四 )DISCONNECT报文详解DISCONNECT固定报头MQTT协议学习笔记(四 )DISCONNECT报文详解DISCONNECT仅有固定报头DISCONNECT固定报头DISCONNECT固定报头 固定为 E0 00 (HEX)...

2019-12-20 16:36:28 175

原创 MQTT协议学习笔记(三)

目录MQTT协议学习笔记(三)有效载荷阿里云MQTT 协议介绍CONNECT 有效载荷MQTT协议学习笔记(三)有效载荷阿里云MQTT 协议介绍阿里云服务器IP地址(华东2):Y.iot-as-mqtt.cn-shanghai.aliyuncs.com阿里云服务器端口号(华东2):1883hmacsha1加密计算网站:http://encode.chahuo.com/客户端ID: ...

2019-12-20 15:56:34 623

原创 MQTT协议学习笔记(二)

目录MQTT协议学习笔记(二)报头构建可变报头构建CONNECT可变报头构建协议名字节协议级别 Protocol Leve连接标志 Connect Flags保持连接 Keep AliveMQTT协议学习笔记(二)报头构建可变报头构建CONNECT可变报头构建协议名字节CONNECT可变报头的协议名字节固定为 00 04 4D 51 54 54协议级别 Protocol Leve...

2019-12-20 13:45:40 264

原创 MQTT协议学习笔记(一)

MQTT协议学习笔记(一)MQTT报文构建报文简介MQTT总共有Figure 1中描述的14类的报文,报文格式统一为 = 固定报头 + 可变报头 + 负载 Figure 1固定报头Figure 2固定报头的长度为2个字节,低四位都是保留位默认为0,高四位的值是Figure 1中的值(注意要以hex格式表示),例如CONNECT的固定报头为 10,DISC...

2019-12-20 12:29:34 619

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除