- 浏览: 1224582 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (883)
- Spring (101)
- Swing (1)
- Mysql (21)
- Js (59)
- Jsp (2)
- Hibernate (19)
- Myeclipse (5)
- SqlServer 2000 (2)
- poi (15)
- Java (70)
- SSH (12)
- Html (47)
- Fusion Charts (1)
- C\C++ (2)
- 汇编 (36)
- Jquery (37)
- Struts2 (6)
- Ubuntu (16)
- powerDesinger (4)
- Jboss (3)
- JAX-RS (13)
- JAXB (5)
- JAX-WS (11)
- JMS (4)
- WebSocket (8)
- PHP (16)
- Flash (1)
- maven (3)
- Oracle (8)
- HttpClient (6)
- sqlserver (19)
- svn (5)
- Tomcat (3)
- Jdbc (3)
- EsayUi (11)
- 微信公众平台 (19)
- IIS (2)
- Freemarker (11)
- Comet (1)
- Spring MVC (85)
- JBoss Seam (3)
- 二维码 (9)
- Spring Security (4)
- Ehcache (3)
- Apache Shiro (7)
- jackson (16)
- JPA (8)
- jcaptcha (2)
- RSA (2)
- Ajax (6)
- 跟我学Shiro (0)
- Spring4 (19)
- 跟我学spring3 (0)
- css (32)
- excel (4)
- Filter (3)
- 微信公众帐号开发教程 (0)
- Android (6)
- log4j (6)
- 淘宝接口 (17)
- 支付集成 (3)
- 单点登录 (3)
- Html5 (27)
- 移动平台前端 (3)
- Linux (44)
- FusionCharts (27)
- Json Jackson Xml (5)
- 方培工作室-微信开发 (0)
- Apache与Tomcat与IIS整合 (10)
- Nginx (17)
- webService (2)
- apache (4)
- lucene (3)
- lodop (2)
- Shiro (3)
- zTree (2)
- ireport (12)
- Servlet3.0 (5)
- 前端美工 (19)
- AngularJS (1)
- C#开发微信门户及应用 (0)
- Shell (3)
- bat脚本 (16)
- Bootstrap (26)
- Less (10)
- photoshop (6)
- Redis (6)
- Mongodb (10)
- MyBatis (3)
- 数据结构 (0)
- 读写分离-主从复制 (0)
- JFinal (0)
- 百度地图api (3)
- hadoop-hbase-hive-spark (3)
- WebStorm (2)
- Quartz (5)
- ios (0)
- Mina (8)
- Android Studio (4)
- Ratchet教程 (0)
- 移动端重构系列 (1)
- cubic-bezier贝塞尔曲线CSS3动画工具 (1)
- nginx+tomcat+memcached集群 (0)
- 集群 (0)
- ZooKeeper (3)
- Dubbo (0)
- vpn (0)
- kafka (0)
- JVM垃圾回收机制 (0)
- 微信小程序 (0)
- Lua (0)
- Hystrix (0)
- Vue.js (0)
- mycat (0)
- Openresty (0)
- springBoot (0)
- 新分类 (0)
- guava (0)
- 大数据 (0)
- Sentinel (0)
最新评论
-
JackMacing:
中文怎么解决?
SpringMVC与iReport(JasperReports) 5.6整合开发实例 -
18335864773:
用pageoffice把.可以实现在线的文档操作.直接转pdf ...
转:使用jasperreport动态生成pdf,excel,html -
linhao0907:
推荐一款轻量开源的支付宝组件:https://github.c ...
关于Alipay支付宝接口(Java版) -
songronghu:
太好了,非常有用,谢谢分享~
Java ConcurrentModificationException 异常分析与解决方案 -
wzwahl36:
http://www.atool.org/json2javab ...
Java下利用Jackson进行JSON解析和序列化
PTR: 指定要操作的数据尺寸
; Test12_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .data val db 11h, 22h, 33h, 44h, 55h, 66h, 77h, 88h .code main proc xor eax, eax ;清空 EAX, 同 mov eax, 0 mov eax, dword ptr val ; PrintHex eax ;44332211 xor eax, eax ; mov eax, dword ptr val+1 ; PrintHex eax ;55443322 xor eax, eax ; mov ax, word ptr val ; PrintHex eax ;00002211 xor eax, eax ; mov al, byte ptr val ; PrintHex eax ;00000011 ret main endp end main
OFFSET: 获取全局变量或标号的偏移地址
; Test12_2.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .data v1 db 'abcdefg', 0 v2 dd 11223344h .code main proc PrintHex offset v1 ;00403000 PrintHex offset v2 ;00403008 PrintHex offset main ;00401000 - 这里的 main 是个标号 ret ;本例中的 offset 不能用 addr 代替 main endp end main
ADDR: 类似 offset 也是获取变量的地址...
; Test12_3.asm .386 .model flat, stdcall ;include windows.inc include kernel32.inc includelib kernel32.lib include user32.inc includelib user32.lib .data v1 dd 00434241h ;ABC v2 dd 00636261h ;abc .code main proc invoke MessageBox, 0, offset v1, offset v2, 0 ;现在 v1、v2 是全局变量 invoke MessageBox, 0, addr v2, addr v1, 0 ;使用 offset 和 addr 均可 invoke ExitProcess, 0 main endp end main
获取局部变量的地址只能使用 ADDR:
; Test12_4.asm .386 .model flat, stdcall ;include windows.inc include kernel32.inc includelib kernel32.lib include user32.inc includelib user32.lib .code main proc LOCAL v1,v2 mov v1, 00434241h mov v2, 00636261h ;invoke MessageBox, 0, offset v1, offset v2, 0 ;offset 不能获取局部变量的地址 invoke MessageBox, 0, addr v2, addr v1, 0 invoke ExitProcess, 0 main endp end main
OFFSET 和 ADDR 的异同:
1、offset 不能获取局部变量的地址;
2、addr 只能用于调用函数(invoke)时, 不能用于赋值操作;
3、addr 面对局部变量时会转换为 lea 等指令, addr 面对全局变量时则直接调用 offset;
4、在 invoke 中应尽量使用 addr, 其他只用 offset.
THIS:
; Test12_5.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .data TextAddr equ this byte ;伪指令 this 可让当前变量和下一个变量同址 szText db 'Asm', 0 .code main proc PrintHex offset szText ;00403000 PrintHex offset TextAddr ;00403000 PrintString szText ;Asm mov [TextAddr], 'a' ;给 TextAddr 赋值 PrintString szText ;asm ret main endp end main
发表评论
-
学 Win32 汇编[34] - 宏汇编(1)
2011-12-22 13:25 754从接触 C 语言时, 我就不大喜欢宏; 但为了看懂别人的代码也 ... -
学 Win32 汇编[33] - 探讨 Win32 汇编的模块化编程
2011-12-22 13:23 584我觉得所谓的模块化有两种: "假模块化" ... -
学 Win32 汇编[32] - 子程序进阶
2011-12-20 09:49 696接: 学 Win32 汇编[9]: 子过程中的变量声明 ... -
学 Win32 汇编[31] - 结构与联合
2011-12-20 09:48 543结构和联合分别用 struct、union 定义, 都是 en ... -
学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等
2011-12-20 09:48 2110.IF、.ELSEIF、.ELSE、.ENDIF: 条件伪指令 ... -
学 Win32 汇编[29] - 串指令: MOVS*、CMPS*、SCAS*、LODS*、REP、REPE、REPNE 等
2011-12-20 09:47 1961这里的 "串" 并不单指字符串, 包括所有 ... -
学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
2011-12-20 09:46 1457跳转指令分三类:一、无条件跳转: JMP;二、根据 CX、EC ... -
学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
2011-12-19 09:03 1371MUL: 无符号乘 ;影响 OF、CF 标志位 ;指 ... -
学 Win32 汇编[26] - 加减指令: INC、DEC、NEG、ADD、ADC、SUB、SBB、CMP
2011-12-19 09:02 1457;INC(Increment): 加一;DEC(Decreme ... -
学 Win32 汇编[25] - 符号扩展指令: CBW、CWDE、CDQ、CWD
2011-12-19 09:01 1621CBW、CWDE、CDQ、CWD: 扩展指令 ;CBW ... -
学 Win32 汇编[24] - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
2011-12-19 09:01 1442SHL、SHR、SAL、SAR: 移位指令 ;SHL( ... -
学 Win32 汇编[23] - 位测试与位扫描指令: BT、BTC、BTR、BTS、BSF、BSR
2011-12-19 09:00 2122BT、BTS、BTR、BTC: 位测试指令 ;BT(B ... -
学 Win32 汇编[22] - 逻辑运算指令: AND、OR、XOR、NOT、TEST
2011-12-14 13:23 1315AND: 逻辑与 ;该指令会置 CF=OF=0; 其结 ... -
学 Win32 汇编[21] - 传送指令: MOV、LEA、XCHG、XLATB、XLAT、MOVZX、MOVSX
2011-12-14 13:22 1104汇编指令的一般性要求: 1、两个操作数的尺寸必须一致; 2、操 ... -
学 Win32 汇编[20]: 洞察标志寄存器
2011-12-14 13:21 64815 14 13 12 11 10 9 8 7 6 ... -
学 Win32 汇编[19]: 查看二进制等相关函数
2011-12-14 13:20 598在 masm32.inc 中有这样几个函数的声明: by ... -
学 Win32 汇编[18]: 关于压栈(PUSH)与出栈(POP) 之二
2011-12-13 14:28 1011由于 "栈" 是由高到低使用的, 所以新压 ... -
学 Win32 汇编[17]: 关于压栈(PUSH)与出栈(POP) 之一
2011-12-13 14:27 1059记得刚学多线程的时候, 碰到一个结构: //Delphi ... -
学 Win32 汇编[16]: 常用寄存器的常规功能
2011-12-13 14:26 761通用寄存器 EAX ... -
学 Win32 汇编[15]: LOOP 与标号
2011-12-13 14:25 819Loop 是反复执行;从哪反复? 这要用到 "标号& ...
相关推荐
在汇编语言中,有一些关键字用于明确数据类型和内存地址,例如ptr用于指定数据类型,offset用于获取变量地址,而local和proc分别用于定义局部变量和子程序。 最后,Win32汇编指令是针对32位Windows API进行编程的...
《C++智能指针——unique_ptr智能指针详解》 智能指针是C++中用于自动管理动态分配内存的一种工具,它可以确保在适当的时候自动释放内存,从而避免内存泄漏的问题。其中,`unique_ptr`是一种特殊的智能指针,它拥有...
C++11 std::shared_ptr总结与使用示例代码详解 std::shared_ptr是C++11中引入的一种智能指针,主要用于自动管理资源的生命周期。下面是std::shared_ptr的总结和使用示例代码详解: 一、智能指针的用途 std::...
标题中的“自己实现的auto_ptr”指的是用户自行编写的一个智能指针类,模仿了C++标准库中的`std::auto_ptr`。`std::auto_ptr`是C++标准库中的一个智能指针,用于管理动态分配的对象,它会在适当的时候自动删除所指向...
在本项目"test_share_ptr"中,我们可以推断其主要关注的是C++中的智能指针`std::shared_ptr`。`std::shared_ptr`是C++标准库中的一个智能指针类型,属于弱所有者(weak ownership)的智能指针,用于管理动态分配的...
《深入浅出:Win32程序的C++编程》 在计算机编程领域,C++语言以其强大的性能和灵活性,成为了开发系统级应用的首选。尤其是当你深入到Win32 API编程时,C++的特性更是得以充分发挥。Win32 API是微软提供的用于...
Win32 API(应用程序接口)则是微软Windows操作系统提供的一套编程接口,允许开发者直接控制操作系统底层功能,实现高效、低级别的编程。 对于初学者,理解C++的基础至关重要,包括基本语法、数据类型、控制结构...
在Win32应用程序开发中,建立对话框是创建用户交互界面的一个重要环节。对话框通常用于收集用户输入、显示信息或者执行特定操作。本篇将深入探讨如何在Win32环境中利用MFC(Microsoft Foundation Classes)类库创建...
在C++11及更高版本中,智能指针(如`std::unique_ptr`,`std::shared_ptr`和`std::scoped_ptr`)被引入来更好地管理动态内存,因此理解如何在这些指针上实现序列化至关重要。 首先,让我们关注`std::unique_ptr`。`...
### AT&T汇编语言与GCC内嵌汇编简介 #### AT&T与INTEL汇编语言语法的区别 AT&T汇编语言与INTEL汇编语言在语法上有显著的不同,这些差异对于初学者来说可能会造成一定的混淆。理解这两种语法之间的区别非常重要,...
本篇文章将详细解析如何在Win32环境下实现动态创建菜单栏。 首先,我们需要理解Windows API中的菜单概念。在Win32 API中,菜单主要分为两种类型:系统菜单(通常包含窗口控制选项,如最小化、最大化和关闭)和应用...
【Boost智能指针详解:scoped_ptr、shared_ptr与weak_ptr】 智能指针是C++中用来自动管理动态分配内存的对象,它可以确保在适当的时间释放内存,以防止内存泄漏。Boost库提供了一组智能指针类型,包括scoped_ptr、...
《PTR6000无线模块详解及应用指南》 PTR6000是一款高性能的无线通信模块,广泛应用于各种远程数据传输和物联网解决方案中。本文将深入探讨PTR6000的技术特性、工作原理以及如何进行有效配置和编程,帮助读者全面...
总结来说,基于Win32的C++线程池实现涉及到Win32 API的使用、线程管理、同步机制、错误处理以及优化策略等多个方面。理解并掌握这些知识点,对于编写高效、可靠的多线程程序至关重要。通过不断实践和优化,可以创建...
它cv::Ptr是轻微封装的std::shared_ptr。 在Linux / BSD上,cv::parallel_for_现在使用std::threads而不是pthreads。 ## DNN改进 添加了基本的FP16支持(添加了新的CV_16F类型)。 添加了对Mask-RCNN模型的支持...
ptr->AddErrorMsg((_bstr_t)"出错类名",(_bstr_t)"出错函数名",(_bstr_t)"出错语句",(_bstr_t)"备注或描述"); 2. 弹出错误对话框: ptr->ShowErrorMsg(); 3. 清空错误信息列表: ptr->Empty(); 压缩包里有个"配置....
在Win7环境下,使用Visual Studio 2013编译并运行这个项目,开发者可以直观地看到DPM如何在图像上检测行人,理解算法的运作原理。源代码中的注释有助于理解每一步的具体功能,对于学习和进一步改进DPM算法非常有帮助...
该软件包包含两个通过质子传递React飞行时间质谱仪(PTR-TOF-MS; Ionicon Analytik GmbH,奥地利因斯布鲁克,奥地利)采集的原始火山岩数据集: 从两个健康个体呼出的空气,每个个体在不同的日子采集三次(即三个...
Win32 SDK(Software Development Kit)是Microsoft提供的一个开发工具集,用于创建Windows平台上的原生应用程序,其中包含了丰富的API函数,可以用来构建图形用户界面(GUI)。本项目将C++11的新特性与Win32 SDK相...