- 浏览: 1224517 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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解析和序列化
[地址] 是取地址指向的内容:
; Test14_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 dwVal dd 123 .code main proc PrintDec offset dwVal ;4206592 - 这是变量 dwVal 的地址 PrintDec dwVal ;123 - 这是变量值 lea ebx, dwVal ;Lea 是专门获取地址的指令, 这同 mov ebx, offset dwVal PrintDec ebx ;4206592 mov eax, [ebx] ;现在 ebx 中放着 dwVal 变量的地址, [ebx] 则表示地址指向的值 PrintDec eax ;123 ret main endp end main
地址指向的是什么数据?
; Test14_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 wVal dw 123 .code main proc lea ebx, wVal ;把变量 wVal 的地址放到 ebx ;但现在 wVal 中放着的是 word 类型的数据, 而 [ebx] 默认是取 32 位的数据 ;这可通过伪指令 ptr 指定数据大小 ;同时需要把接收着换成 16 的(如 ax), 因为 mov 要求两个操作数的大小须一致 xor eax, eax ;清空 eax mov ax, word ptr [ebx] PrintDec eax ;123 ;也可以直接使用 movzx, 它可以从小到大(movzx r16/r32, r/8/r16/m8/m16) movzx eax, word ptr [ebx] PrintDec eax ;123 ret main endp end main
[] 一般用于数组:
; Test14_3.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 wArr dw 11,22,33 .code main proc ;把数组 bArr 的起始地址放到 ebx, 并获取数组元素: lea ebx, wArr movzx eax, word ptr [ebx] movzx ecx, word ptr [ebx+2] movzx edx, word ptr [ebx+4] PrintDec eax ;11 PrintDec ecx ;22 PrintDec edx ;33 ;这样做更好些: lea ebx, wArr mov esi, type wArr ;把元素大小放在 esi movzx eax, word ptr [ebx] movzx ecx, word ptr [ebx + esi * 1] movzx edx, word ptr [ebx + esi * 2] PrintDec eax ;11 PrintDec ecx ;22 PrintDec edx ;33 ;这样也行: lea ebx, wArr mov esi, type wArr ;把元素大小放在 esi movzx eax, word ptr [ebx] movzx ecx, word ptr [ebx][esi * 1] movzx edx, word ptr [ebx][esi * 2] PrintDec eax ;11 PrintDec ecx ;22 PrintDec edx ;33 ;如果直接使用变量就更像高级语言里的数组了: lea ebx, wArr mov esi, type wArr ;把元素大小放在 esi movzx eax, word ptr wArr movzx ecx, word ptr wArr[esi * 1] movzx edx, word ptr wArr[esi * 2] PrintDec eax ;11 PrintDec ecx ;22 PrintDec edx ;33 ret main endp end main
当然也可以写入数组:
; Test14_4.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 wArr dw 11h ,22h, 33h .code main proc DumpMem offset wArr, sizeof wArr ;11 00 22 00 33 00 lea ebx, wArr mov word ptr [ebx], 44h mov word ptr [ebx+2], 55h mov word ptr [ebx+4], 66h DumpMem offset wArr, sizeof wArr ;44 00 55 00 66 00 ;或者: mov word ptr wArr, 77h mov word ptr wArr[2], 88h mov word ptr wArr[4], 99h DumpMem offset wArr, sizeof wArr ;77 00 88 00 99 00 ret main endp end main
好像 [] 不能直接是变量或常数(变量后面跟的 [] 除外).
发表评论
-
学 Win32 汇编[34] - 宏汇编(1)
2011-12-22 13:25 754从接触 C 语言时, 我就不大喜欢宏; 但为了看懂别人的代码也 ... -
学 Win32 汇编[33] - 探讨 Win32 汇编的模块化编程
2011-12-22 13:23 583我觉得所谓的模块化有两种: "假模块化" ... -
学 Win32 汇编[32] - 子程序进阶
2011-12-20 09:49 695接: 学 Win32 汇编[9]: 子过程中的变量声明 ... -
学 Win32 汇编[31] - 结构与联合
2011-12-20 09:48 542结构和联合分别用 struct、union 定义, 都是 en ... -
学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等
2011-12-20 09:48 2109.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 1456跳转指令分三类:一、无条件跳转: 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 1620CBW、CWDE、CDQ、CWD: 扩展指令 ;CBW ... -
学 Win32 汇编[24] - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
2011-12-19 09:01 1441SHL、SHR、SAL、SAR: 移位指令 ;SHL( ... -
学 Win32 汇编[23] - 位测试与位扫描指令: BT、BTC、BTR、BTS、BSF、BSR
2011-12-19 09:00 2121BT、BTS、BTR、BTC: 位测试指令 ;BT(B ... -
学 Win32 汇编[22] - 逻辑运算指令: AND、OR、XOR、NOT、TEST
2011-12-14 13:23 1314AND: 逻辑与 ;该指令会置 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 64715 14 13 12 11 10 9 8 7 6 ... -
学 Win32 汇编[19]: 查看二进制等相关函数
2011-12-14 13:20 597在 masm32.inc 中有这样几个函数的声明: by ... -
学 Win32 汇编[18]: 关于压栈(PUSH)与出栈(POP) 之二
2011-12-13 14:28 1010由于 "栈" 是由高到低使用的, 所以新压 ... -
学 Win32 汇编[17]: 关于压栈(PUSH)与出栈(POP) 之一
2011-12-13 14:27 1059记得刚学多线程的时候, 碰到一个结构: //Delphi ... -
学 Win32 汇编[16]: 常用寄存器的常规功能
2011-12-13 14:26 760通用寄存器 EAX ... -
学 Win32 汇编[15]: LOOP 与标号
2011-12-13 14:25 818Loop 是反复执行;从哪反复? 这要用到 "标号& ...
相关推荐
32. **性能分析**:使用性能分析工具来衡量和优化代码的运行速度。 33. **位移和移位操作**:掌握SHL、SHR等移位指令,实现快速乘除和位逻辑操作。 34. **自定义汇编宏**:创建自己的宏定义,简化重复代码。 35. ...
- **定义变量**:使用`.byte`, `.word`, `.dword`等指令来定义不同类型的变量。 - **初始化数据**:可以直接初始化变量,如`.data`段中定义变量并赋初值。 **2.3 常数和标号** - **常数定义**:可以使用`.equ`指令...
在“汇编 算符优先分析法分析器的设计”这个项目中,我们将探讨如何使用VC6.0这一经典的开发环境来实现一个基于算符优先分析法的分析器。 首先,我们需要了解算符优先分析法的基本原理。该方法依赖于一个算符优先表...
PureBasic 是一个新的基于...- 象BASIC关键字一样完全支持Win32 API - 汇编程序内嵌 - 为快速编译使用固定文件预编译结构 - 结构化 CLI编译器 - 高效率,包括大量关键词,联机帮助 - 友好的系统,简单而好用,安装方便
- **Win32窗口程序**:程序应采用Win32 API构建窗口界面,以便用户交互。 - **运算支持**:除了基本的四则运算,还需要支持位运算,以及处理小括号内的优先级。 - **文本框交互**:用户可以通过文本框输入和查看...
例如,使用-o选项可以指定输出文件名,-f选项用于指定输出文件的格式,如elf、coff或win32等。-l选项可以生成汇编源代码的列表文件,这对于调试和维护代码很有帮助。Makefile依赖项的生成允许开发者自动化构建过程,...
- 象BASIC关键字一样完全支持Win32 API - 汇编程序内嵌 - 为快速编译使用固定文件预编译结构 - 结构化 CLI编译器 - 高效率,包括大量关键词,联机帮助 - 友好的系统,简单而好用,安装方便 - 600条以上的内部命令 - ...
- 象BASIC关键字一样完全支持Win32 API - 汇编程序内嵌 - 为快速编译使用固定文件预编译结构 - 结构化 CLI编译器 - 高效率,包括大量关键词,联机帮助 - 支持XML,正则表达式,ftp ,http,....... - 友好的系统,简单而...
- 象BASIC关键字一样完全支持Win32 API - 汇编程序内嵌 - 为快速编译使用固定文件预编译结构 - 结构化 CLI编译器 - 高效率,包括大量关键词,联机帮助 - 支持XML,正则表达式,ftp ,http,....... - 友好的系统,简单而...
`assembler` 关键字与 `asm` 类似,但只支持80x86汇编,而不支持Win32汇编。`assembler` 代码不支持 Delphi 的高级特性,如 `Invoke` 语句。 以上仅是Delphi关键字的一部分,实际上还有许多其他关键字,如 `const`...
- 象BASIC关键字一样完全支持Win32 API - 汇编程序内嵌 - 为快速编译使用固定文件预编译结构 - 结构化 CLI编译器 - 高效率,包括大量关键词,联机帮助 - 支持XML,正则表达式,ftp ,http,....... - 友好的系统,简单而...
与其他汇编器相比,NASM具有更简洁的语法,易于理解和学习,同时也支持高级特性,如宏处理和直接生成ELF、COFF、Win32/64等目标文件格式。 **NASM的版本信息** 本安装包为"nasm-2.14rc16 64位",意味着它是NASM的...
18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
首先,掌握分号与大括号的使用至关重要。分号(;)在C语言中是语句的结束标志,几乎每个表达式结束后都需要一个分号。然而,不是所有结构都要求分号,例如if、switch、for、while语句以及数据类型定义和函数定义等,...
4.5 定义公共体系结构:使用对象库 93 4.5.1 考虑应用程序的体系结构 93 4.5.2 Delphi固有的体系结构 94 4.5.3 体系结构的例子 94 4.5.4 子窗体TChildForm 94 4.5.5 数据库基础模式窗体TDBMode- Form 96 4.5.6 ...
标题 "如何使用RichEdit50W进行语法高亮显示的想法" 涉及到的是在编程环境中集成富文本编辑器,特别是使用RichEdit50W控件实现代码的语法高亮显示。这是一个对于开发源代码编辑器或者IDE(集成开发环境)来说非常...
10. 类的定义使用花括号{}包裹,例如:`class MyClass { ... }` 11. SQL中的`UPDATE`语句用于修改表中已存在的数据。 12. Web的工作模式是浏览器/服务器模式,即客户端通过浏览器向服务器发送请求并接收响应。 13...
Windows 操作系统在过去几年中得到了显着更新。 但是,默认的 Windows 记事本在 20 年内未更新。 如果你需要一个简单的编程任务的文本编辑器,请考虑使用 Notepad3 中文版吧!我们使用默认 Windows 记事本当前缺少的...
最后,`assembler`关键字是Delphi早期版本中用于插入80x86汇编代码的,它不支持Win32汇编或`Invoke`指令,这与`asm`关键字有所不同。 这些关键字是Delphi程序员日常工作中不可或缺的部分,理解和熟练运用它们可以...