hex

Printing hex from dx with nasm

守給你的承諾、 提交于 2020-12-30 02:56:54
问题 I actually want to print the content of the dx register with nasm. Thereby the content is a 16 bit hex digit such as 0x12AB. Therefore I've first implemented a function which is able to print a string: print_string: pusha mov ah, 0xe print_character: mov al, [bx] inc bx or al, al jz print_done int 0x10 jmp print_character print_done: popa ret You can use this function in this way: mov bx, MSG call print_string MSG: db 'Test',0 Now i want to have a function, which converts the hex to a string,

Printing hex from dx with nasm

坚强是说给别人听的谎言 提交于 2020-12-30 02:56:52
问题 I actually want to print the content of the dx register with nasm. Thereby the content is a 16 bit hex digit such as 0x12AB. Therefore I've first implemented a function which is able to print a string: print_string: pusha mov ah, 0xe print_character: mov al, [bx] inc bx or al, al jz print_done int 0x10 jmp print_character print_done: popa ret You can use this function in this way: mov bx, MSG call print_string MSG: db 'Test',0 Now i want to have a function, which converts the hex to a string,

STM32通过IAP实现固件升级的分析与示例

谁说胖子不能爱 提交于 2020-12-28 18:43:45
大部分MCU都可以通过IAP对片内flash进行读写来实现固件升级。 这里主要是STM32如何实现IAP升级。 不同内核的stm32方式可能略有不同。这里先说F1内核的IAP过程,以STM32F103C8T6为例。 一、片内FLASH读写 实现IAP,首先要实现片内FLASH读写 1、擦除程序区,调用库函数FLASH_ErasePage可以按页做擦除 int FlashErase(uint32_t addr) { uint8_t retry_time; uint8_t i; retry_time = 200; FLASH_Unlock(); for(i=0; i<55; i++) { FLASH_ErasePage((uint32_t)addr); while((FLASH->SR & FLASH_FLAG_EOP) == 0) { delay_ms(1); retry_time--; if(retry_time == 0) { return 1; } } //标记清零 FLASH->SR |= FLASH_FLAG_EOP; addr += 0x400; delay_ms(1); } FLASH_Lock(); return 0; } 2、读片内FLASH 直接指针读指定FLASH地址就可以了 #define PARA_START_ADDR1 0x0800f800 //参数首地址

Beetlex之websocket/tls服务压测工具

╄→尐↘猪︶ㄣ 提交于 2020-12-27 16:39:27
为了方便压力测试ws服务,Beetlex同样提供相关工具来对ws/wss服务的性能进行测试测试。 安装 可以访问https://github.com/beetlex-io/TCPBenchmarks 下载最新版本工作,工具可以运行在linux和windows系统,安装完成后通过浏览器访问相关服务进行操作。 使用 工具提供的操作很简单,只需要简单地添加服务和发送的消息即可对服务进行一个压力测试。在添加服务的时候可以指定ws对应用的path和相关头信息,如果有需要还可以启用SSL。 消息类型 工具发送的消息有两种类型:utf8和hex,分别对应websocket数据包类型的text和binary。 测试方式 工具提供两种测试方式,分别是:请求响应和间隔两种模式。前者是工具收到响应后马上进行下一次数据发送;后者则是每隔指定时间向服务端发送数据。 本地IP选项主要告诉工具由那个IP发起请求,如果测试的连接太多单个IP的端口数满足不了测试的情况下,请根据连接数量来选择多个IP地址。测试工具占用的端口是10000-60000。 高吞吐压测 如果服务端在局域网想测试高吞吐交互则可以选用请求响应模式,这种模式可以具备高强度的压测效果;注意这种测试模式不适合采用大量在连接,只需要适当的连接数量即可。以下用200连接对2K数据进行一个高吞吐测试。 高连接数压测 有些情况只观察大量在线的情况

C语言sprintf与sscanf函数

冷暖自知 提交于 2020-12-27 10:05:19
1、前言   OUI是指Organizationally unique identifier (组织唯一标识符),签发给各类组织的唯一标识符。MAC地址共有6个字节48位组成,前3个字节体现了OUI,其表明了NIC的制造组织。通常情况下,该标识符是唯一的。详细介绍参考: http://standards.ieee.org/develop/regauth/oui/public.html 。oui.txt文件中记录世界所有网卡的制造厂商,共有18859个。文件中记录mac的前三位与公司的对应关系。本文目地是对oui.txt文件进行解析,生产一个信息的文件,在程序中可以根据制定的mac地址,快速查找其对应的公司名称。在此将MAC前三个字节简称为MAC前缀。 2、初步处理   oui.txt文件内容很有规律,根据MAC前缀由小到大记录。但是,MAC前缀并不是连续的,中间有些间断,但是顺序是由小到大。原始文件内容格式如下所示: OUI Organization company_id Organization Address 00-00-00 (hex) XEROX CORPORATION 000000 (base 16) XEROX CORPORATION M/S 105-50C 800 PHILLIPS ROAD WEBSTER NY 14580 UNITED STATES 00-00

How to `Serial.print()` “full” hexadecimal bytes?

橙三吉。 提交于 2020-12-26 06:32:16
问题 I am programming Arduino and I am trying to Serial.print() bytes in hexadecimal format "the my way" (keep reading for more information). That is, by using the following code byte byte1 = 0xA2; byte byte2 = 0x05; byte byte3 = 0x00; Serial.println(byte1, HEX); Serial.println(byte2, HEX); Serial.println(byte3, HEX); I get the following output in the Serial Monitor: A2 5 0 However I would like to output the following: A2 05 00 In words, I would like to print the "full" hexadecimal value including

【问题】电子时钟显示鬼影问题,真的是显示程序问题吗?

霸气de小男生 提交于 2020-12-23 16:34:27
还是老话题,最近高校期末考试,每天都有好几个为了考试加Q群的,之前Q群设置了收费,感觉要小伙伴的钱,不咋合适,现在设置为回答问题,小代来审核,这样好多了,但是每天小代要花费很长时间去看,还是有漏网之鱼,打着学习的旗号来群里问考试,这样人小代不咋喜欢,因为只想索取不想付出,谁都没有义务去帮谁,因为你只是你,不是谁的谁。 今天的话题,从一个聊天记录开始 Q群里面有小伙伴@小代,大概意思是他写的数码管显示程序有问题,有鬼影 (其实就是不该亮的那些段有微微的亮影)。 后面还贴出来显示部分的代码,眼睛一票,没发现问题,仔细一看,源程序在段选码和位选码之间加了一个延时,正常情况下的数码管显示程序是 段选和位选都送完后再加延时,小代用大脚趾一想,问题应该在这,就在群里告诉了修改办法。 大大的尬 尬 因为改完还是一样的,没效果,小白病急乱投医,又在switch里面加了个循环进去。还是没效果。 为了不打扰群里认真学习的小伙伴,小代叫小白私聊发完整代码来看。不看不知道,一看吓一跳。显示部分没得什么大问题,看到定时器计算时间数据时候着实的吓一跳啊。小白用的一个Uint的变量去记录时间的秒数,最终的时分秒都是通过这个变量计算得到。这样的写法小代还是第一次看到,不知道是老师教的好还是小白学的好。因为显示部分没发现问题,小代把显示的数据改成直接显示123456这样的数字

相见恨晚的强大截图软件:Snipaste

折月煮酒 提交于 2020-12-22 20:43:38
目录 一、软件下载 1. 第一步:进入官网下载压缩包 2. 第二步:解压后双击即可使用 3. 注意:修改快捷键(笔记本电脑) 4. 查看Snipaste内置快捷键 5. Snipaste文档 二、基本操作 1. 常用截图操作(8种) 2. 常用标注操作(7种) 3. 常用贴图操作(14种) 三、软件的使用技巧 1. ESC设置(取消 / 销毁) 2. 设置截图输出的位置 3. 贴图(多个) 前言:    作为一个在校大学生从刚开始只会傻傻的使用手机照相功能对着电脑拍照,到后来逐渐学会使用电脑自带截图(Shift+Win+S)和QQ截图(Ctrl+Alt+A),到现在使用的Sinpaste截图软件,深知使用一个好的截图方式是多么的快乐…… Snipaste 不只是截图,熟练使用贴图和标注功能,将大大提高我们的办公效率 一、软件下载 snipaste:软件较小(12M),无需安装,下载解压后即可使用 1. 第一步:进入官网下载压缩包 官网: https://zh.snipaste.com 根据个人电脑配置,选择合适的版本 对于Windows 桌面版: 推荐下载: v1.16.2 v2.5.6-Beta :测试版 2. 第二步:解压后双击即可使用 3. 注意:修改快捷键(笔记本电脑) 如果你使用的是笔记本电脑,需要设置一下快捷键,右击选中对应快捷键选项,然后按一下键盘上的F1键就ok了

记一次死锁分析过程

﹥>﹥吖頭↗ 提交于 2020-12-21 14:29:03
### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction ### The error may involve com.cgd.order.dao.OrderSaleMapper.updateSaleOrderStatus-Inline ### The error occurred while setting parameters ### SQL: update t_order set ORDER_STATUS = ? where ORDER_ID = ? 小盆友,如果你在日志里看到这个是不是像我一样会有很多问号?? 我一个只会写增删改查sql的低层次程序员有了满奶子问号。 但是我相信啊:只要功夫深,李白碰到的老婆婆就能把铁杵磨成针。 1.首先是要了解一些除了增删改查之外的数据库基础知识 从极客上找了门MySQL实战,如果你也想买,请联系我,推荐人买有返现的。 这门课我是觉得很值,这两天为了解决这个死锁又读了一遍有关加锁的章节,发现了一条命令啊,这个命令会输出很多信息,有一节 LATESTDETECTED

hdparm 命令使用;关闭硬盘 HDD cache; 硬盘读写性能测试;

半世苍凉 提交于 2020-12-21 07:54:59
最新需要使用硬盘做一些测试,需要使用到hdparm工具,并进行了解,并进行简要记录; hdparm、dd、fio、都是很好的硬盘测试软件;通常使用其对硬盘信息做基本了解; 关闭硬盘写Cache用例: hdparm -W /dev/ sdh # 查看写缓存状态; hdparm -W 0 /dev/ sdh # 关闭Cache,保证数据强一致性;放置断电时数据未落盘; hdparm -W 1 /dev/sdh # 打开 测试磁盘和磁盘缓存读取速度: 查看磁盘信息: fdisk -l /dev/ sdh hdparm /dev/sdh 评估磁盘读取速度: hdparm -t /dev/sdh 评估磁盘缓存读取速度: hdparm -T /dev/sdh 直接测试硬盘的读性能(绕过内核页缓存): hdparm -tT --direct /dev/sdh 顺序写测试: time -p bash -c "dd if=/dev/urandom of=./dd.log bs=1M count=50000" 随机写测试(使用direct标识,绕过页缓存): fio -filename=randw-singlethread -fallocate=none -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=libaio -bs=32k -size