- 浏览: 1193063 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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解析和序列化
学 Win32 汇编[15]: LOOP 与标号
- 博客分类:
- 汇编
Loop 是反复执行;
从哪反复? 这要用到 "标号";
反复几次? 把反复的次数告诉 ECX 寄存器即可.
笨办法计算 3 * 8 = 24
; Test15_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 dd 3 .code main proc xor eax, eax add eax, val add eax, val add eax, val add eax, val add eax, val add eax, val add eax, val add eax, val PrintDec eax ;24 ret main endp end main
使用 LOOP 和标号:
; Test15_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 val dd 3 .code main proc xor eax, eax mov ecx, 8 L1: ;命名为 "L1" 的标号 add eax, val loop L1 ;反复到指定标号; 每次反复 ecx 会减 1, 直到 ecx 为 0 才向下执行 PrintDec eax ;24 ret main endp end main
数组求和的例子:
; Test15_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 dwArr dd 1,2,3,4,5 .code main proc lea edi, dwArr ;把数组起始地址给一个寄存器 mov ecx, lengthof dwArr ;把数组元素数(将要反复的次数)给 ECX xor eax, eax L1: add eax, [edi] ;edi 中的地址将不断变化, 通过 [edi] 获取元素值 add edi, type dwArr ;获取下一个元素的地址 loop L1 PrintDec eax ;15 ret main endp end main
复制字符串的例子:
; Test15_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 szSource db 'Hello World!', 0 ;定义源字符串 szDest db sizeof szSource dup(0) ;定义相同大小的目的字符串 .code main proc mov esi, 0 ;这里选择使用 esi 做数组索引 mov ecx, sizeof szSource ;这是要循环的次数 L1: mov al, szSource[esi] ;mov 的操作数不允许两个都是变量, 用 al 中转一下 mov szDest[esi], al ; inc esi ;调整索引 loop L1 PrintString szDest ;Hello World! ret main endp end main
如果仅仅是复制字符串, 可以使用声明在 masm32.inc 中的 szCopy 函数:
; Test15_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 szSource db 'Hello World!', 0 szDest db sizeof szSource dup(0) .code main proc invoke szCopy, addr szSource, addr szDest PrintString szDest ;Hello World! ret main endp end main
关于 @@、@B、@F:
; 如果懒得给标号取名, 可以使用 @@ 做标号; ; @B 表示前面最近的一个标号、@F 表示后面最近的一个标号; ; 使用 @@ 可以把前面 3*8=24 的例子修改如下: ; Test15_6.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 dd 3 .code main proc xor eax, eax mov ecx, 8 @@: add eax, val loop @B PrintDec eax ;24 ret main endp end main
关于全局标号:
; 上面例子中的标号都是局部标号; ; 如果一个标号定义在子过程之外, 那它就是全局标号了. ; 能不能在子过程中定义全局标号呢? 后面加两个 : 就是了. ; Test15_7.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 dd 3 .code MyProc proc Label1:: ;是 Label1:: 而不是 Label1: PrintText 'MyProc' ret MyProc endp main proc PrintText 'main' jmp Label1 ;jmp 是无条件跳转指令 ret main endp end main
发表评论
-
学 Win32 汇编[34] - 宏汇编(1)
2011-12-22 13:25 731从接触 C 语言时, 我就不大喜欢宏; 但为了看懂别人的代码也 ... -
学 Win32 汇编[33] - 探讨 Win32 汇编的模块化编程
2011-12-22 13:23 555我觉得所谓的模块化有两种: "假模块化" ... -
学 Win32 汇编[32] - 子程序进阶
2011-12-20 09:49 661接: 学 Win32 汇编[9]: 子过程中的变量声明 ... -
学 Win32 汇编[31] - 结构与联合
2011-12-20 09:48 517结构和联合分别用 struct、union 定义, 都是 en ... -
学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等
2011-12-20 09:48 2082.IF、.ELSEIF、.ELSE、.ENDIF: 条件伪指令 ... -
学 Win32 汇编[29] - 串指令: MOVS*、CMPS*、SCAS*、LODS*、REP、REPE、REPNE 等
2011-12-20 09:47 1879这里的 "串" 并不单指字符串, 包括所有 ... -
学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
2011-12-20 09:46 1412跳转指令分三类:一、无条件跳转: JMP;二、根据 CX、EC ... -
学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
2011-12-19 09:03 1341MUL: 无符号乘 ;影响 OF、CF 标志位 ;指 ... -
学 Win32 汇编[26] - 加减指令: INC、DEC、NEG、ADD、ADC、SUB、SBB、CMP
2011-12-19 09:02 1396;INC(Increment): 加一;DEC(Decreme ... -
学 Win32 汇编[25] - 符号扩展指令: CBW、CWDE、CDQ、CWD
2011-12-19 09:01 1564CBW、CWDE、CDQ、CWD: 扩展指令 ;CBW ... -
学 Win32 汇编[24] - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
2011-12-19 09:01 1389SHL、SHR、SAL、SAR: 移位指令 ;SHL( ... -
学 Win32 汇编[23] - 位测试与位扫描指令: BT、BTC、BTR、BTS、BSF、BSR
2011-12-19 09:00 2095BT、BTS、BTR、BTC: 位测试指令 ;BT(B ... -
学 Win32 汇编[22] - 逻辑运算指令: AND、OR、XOR、NOT、TEST
2011-12-14 13:23 1245AND: 逻辑与 ;该指令会置 CF=OF=0; 其结 ... -
学 Win32 汇编[21] - 传送指令: MOV、LEA、XCHG、XLATB、XLAT、MOVZX、MOVSX
2011-12-14 13:22 1055汇编指令的一般性要求: 1、两个操作数的尺寸必须一致; 2、操 ... -
学 Win32 汇编[20]: 洞察标志寄存器
2011-12-14 13:21 61715 14 13 12 11 10 9 8 7 6 ... -
学 Win32 汇编[19]: 查看二进制等相关函数
2011-12-14 13:20 550在 masm32.inc 中有这样几个函数的声明: by ... -
学 Win32 汇编[18]: 关于压栈(PUSH)与出栈(POP) 之二
2011-12-13 14:28 967由于 "栈" 是由高到低使用的, 所以新压 ... -
学 Win32 汇编[17]: 关于压栈(PUSH)与出栈(POP) 之一
2011-12-13 14:27 1021记得刚学多线程的时候, 碰到一个结构: //Delphi ... -
学 Win32 汇编[16]: 常用寄存器的常规功能
2011-12-13 14:26 728通用寄存器 EAX ... -
学 Win32 汇编[14]: 使用中括号 []
2011-12-12 13:24 711[地址] 是取地址指向的内容: ; Test14_1.as ...
相关推荐
WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编WIN32汇编
Win32汇编 Win32汇编 Win32汇编 Win32汇编
win32汇编语言入门win32汇编语言入门win32汇编语言入门win32汇编语言入门win32汇编语言入门win32汇编语言入门
Win32应用程序虽然和其他32位应用程序(例如32位保护模式DOS程序)一样可以使用386汇编语言和保护模式编程,但是Win32应用程序的执行机制与其他32位应用程序有一定的差别,例如消息循环、动态链接等,Win32汇编语言...
win32汇编教程。汇编基础。 本帮助文件由yyc个人整理后出版,内容全摘自网络。版权归实际作者所有。 为了让网友们能更好的学习Win32汇编编程,于是我为大家将网上的资料整理成一个帮助文件。 本帮助文件包括:...
Win32汇编编程系列 声明: 本帮助文件由yyc个人整理后出版,内容全摘自网络。版权归实际作者所有。 为了让网友们能更好的学习Win32汇编编程,于是我为大家将网上的资料整理成一个帮助文件。 本帮助文件包括:...
汇编语言下的windows窗口代码,学生管理系统
从Dos到Win32汇编从Dos到Win32汇编从Dos到Win32汇编从Dos到Win32汇编
”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。本书作者罗云彬拥有十余年汇编语言编程经验,是汇编编程网站http://asm.yeah.net和汇编编程论坛...
WIN32汇编语言教程 电子书WIN32汇编语言教程 电子书WIN32汇编语言教程 电子书WIN32汇编语言教程 电子书WIN32汇编语言教程 电子书WIN32汇编语言教程 电子书
”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。本书作者罗云彬拥有十余年汇编语言编程经验,是汇编编程网站http://asm.yeah.net和汇编编程论坛...
”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。本书作者罗云彬拥有十余年汇编语言编程经验,是汇编编程网站http://asm.yeah.net和汇编编程论坛...
”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。本书作者罗云彬拥有十余年汇编语言编程经验,是汇编编程网站http://asm.yeah.net和汇编编程论坛...
Win32汇编语言教程
win32汇编语言实现冒泡排序,全部的代码插入在文档的最下面。
win32汇编打包 工具 demo实例
Win32汇编教程.pdfWin32汇编教程.pdfWin32汇编教程.pdfWin32汇编教程.pdf
Win32汇编编程系列 声明: 本帮助文件由yyc个人整理后出版,内容全摘自网络。版权归实际作者所有。 为了让网友们能更好的学习Win32汇编编程,于是我为大家将网上的资料整理成一个帮助文件。 本帮助文件包括:...
Win10系统VS2022开发环境中X86Win32汇编MASM32环境配置和一些.docx
win32汇编语言教程.chm win32汇编语言教程