- 浏览: 1224563 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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解析和序列化
=、EQU、TEXTEQU 功能差不多, 它们定义的符号都将在编译前辈替换成它们指定的常量值.
相比之下 EQU 更好用些.
= 举例
; Test13_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 n = 1 ; = 伪指令只能定义整数或整数表达式 n = n + 1 ; 可重复定义 .code main proc PrintDec n ;2 ret main endp end main
EQU 例一
; Test13_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 num1 equ 2 ; equ 可以定义整数和整数表达式 num2 equ 3 ; 它不能像 = 一样重复定义 num3 equ num1+num2 ; (我尝试了重复定义, 竟然有时也可以, 只是偶尔) txt equ <'Asm'> ; 可用 equ 定义字符串, 应使用 <> szTxt db txt, 0 ; 使用 equ 定义的常量 .code main proc PrintDec num3 ;5 PrintString szTxt ;Asm ret main endp end main
EQU 例二
; Test13_3.asm .386 .model flat, stdcall include windows.inc include kernel32.inc includelib kernel32.lib include user32.inc includelib user32.lib ; 用 equ 给函数重命名 Msg equ MessageBox Exit equ <ExitProcess> ;尖括号可保证字符串的完整、并避免和关键字冲突 ; 甚至代替整个表达式 ShowMsg equ <invoke MessageBox, NULL, addr szMsg, addr szCaption, MB_OK> .data szMsg db 'Hello World!', 0 szCaption db 'Hi', 0 .code main proc invoke Msg, NULL, addr szMsg, addr szCaption, MB_OK ShowMsg invoke Exit, NULL main endp end main
用 TEXTEQU 重做上一个例子, 完全可行:
; Test13_4.asm .386 .model flat, stdcall include windows.inc include kernel32.inc includelib kernel32.lib include user32.inc includelib user32.lib Msg textequ MessageBox Exit textequ <ExitProcess> ShowMsg textequ <invoke MessageBox, NULL, addr szMsg, addr szCaption, MB_OK> .data szMsg db 'Hello World!', 0 szCaption db 'Hi', 0 .code main proc invoke Msg, NULL, addr szMsg, addr szCaption, MB_OK ShowMsg invoke Exit, NULL main endp end main
用 TEXTEQU 重做 EQU 的第一个例子(Test13_2.asm), 有区别:
; Test13_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 num1 equ 2 ; 这里的 equ 换做 textequ 不行 num2 textequ <3> ; 如果用 textequ 定义整数或表达式也要放在 <> 中 num3 textequ <num1+num2> ; 这曾是 num3 equ num1+num2 txt textequ <'Asm'> ; txt textequ <'Delphi'> ; textequ 可重复定义 szTxt db txt, 0 .code main proc PrintDec num3 ;5 PrintString szTxt ;Delphi 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 是反复执行;从哪反复? 这要用到 "标号& ...
相关推荐
### Win32汇编语言实现冒泡排序 #### 一、背景 随着现代软件开发的不断进步和发展,大型软件项目通常不再使用汇编语言作为主要编程语言,这主要是因为汇编语言编写耗时且不易维护。然而,在某些特定场景下,如硬件...
【win32汇编MASM】是编程领域中一个专门针对Windows 32位系统进行程序开发的技术。MASM(Microsoft Assembler)是微软提供的一个汇编语言编译器,它支持Intel x86架构下的汇编语言编程,广泛应用于低级别系统编程、...
在MASM32中,`typedef`, `equ`, 和 `=` 关键字各自扮演着不同的角色,帮助我们定义和管理符号。下面我们将详细探讨这三个概念及其在汇编程序中的应用。 1. `typedef`: 在C/C++中,`typedef` 关键字用于创建一个新...
::======================================================================================================================================== if %winbuild% LSS 7600 ( %ErrLine% echo Unsupported OS ...
::======================================================================================================================================== if %winbuild% LSS 7600 ( %ErrLine% echo Unsupported OS ...
14. X1 EQU 1000H和X2=1000H的区别在于X1是符号常量,而X2是数值常量。 15. 两个AND指令的区别在于第一个AND操作是将AX与STR1按位与,第二个AND操作是将STR2与STR1按位与,即第一个AND影响AX,第二个AND影响STR2。 ...
* EQU:定义符号常量。 * DB:定义字节变量。 * DW:定义字变量。 * DD:定义双字变量。 * DQ:定义四字变量。 * DT:定义十字节变量。 常用系统功能调用与BIOS: * INT 21H:DOS系统调用。 * INT 10H:视频BIOS...
符号定义伪指令EQU用于给符号名赋值,格式为:<符号名> EQU <表达式>。例如:EQU 88HPORT EQU PORT+2,定义符号PORT代表88H,定义符号DATA代表PORT+2。 等号(赋值)伪指令用于给符号名赋值,格式为:<符号名> = ...
在ARM汇编语言中,数字常量的定义通常使用`EQU`伪操作完成。需要注意的是,一旦定义了一个数字常量,其值就不能再被更改。 #### 六、标号的种类 - **基于PC的标号**:这种标号通常用于跳转指令的目标地址,或者...
### ARM汇编语言中的符号全解析 #### 一、引言 ARM汇编语言作为一种重要的编程语言,在单片机开发领域具有广泛的应用。在ARM汇编语言中,符号的使用非常关键,它们不仅可以提高程序的可读性,还能帮助开发者更高效...
.386 .MODEL FLAT INCLUDE io.h ExitProcess PROTO NEAR32 stdcall,dwExitCode:DWORD cr EQU 0dh Lf EQU 0ah .STACK 4096 .DATA
在汇编语言中,符号定义伪指令语句有两种形式:EQU 伪操作和等号语句。EQU 伪操作用于定义符号名,并将符号名与某个值关联起来。例如:EMP EQU 0;定义符号名 EMP 为 0。等号语句则用于重新定义符号名。例如:EMP = ...
3. `EQU`:用于给符号赋值,相当于常量。 4. `PROC`/`ENDP`:用于定义子程序的开始和结束。 5. `LABEL`:定义标号,作为代码或数据的引用点。 6. `ORG`:设置当前地址,用于指定代码或数据的起始位置。 7. `END`:...
- **EQU**: 定义符号常量,如 `TTY EQU 1080H`。 - **DB**: 定义字节数据,例如 `DB 80H`。 - **DW**: 定义16位数据,如 `DW 1080H`。 - **DS**: 定义存储区域,如 `DS 0100H`。 - **BIT**: 定义位地址,如 `BIT 7FH...
例如,`EQU`定义常量,`ORG`指定内存位置,`LABEL`定义标号。 2. **寄存器使用**: - STM32的Cortex-M内核拥有多个通用寄存器(R0-R15),其中R13作为堆栈指针SP,R14作为链接寄存器LR,R15作为程序计数器PC。 - ...
- **EQU**:定义符号常量,如`CONSTANT EQU 100`,一个符号只能被EQU定义一次。 - **=**:类似EQU,但允许重新定义同一个符号,如`EMP=7; EMP=EMP+1`。 - **DB**,**DW**,**DD**:分别用于定义字节、字和双字的数据...
- **.equ**:定义符号常量,如 `.equ MY_CONST, 10`。 - **.org**:设置当前输出地址,用于填充或定位数据。 - **.byte**:插入指定数量的字节数据。 - **.word**:插入一个或多个32位字数据。 - **.align**:确保...
定义了寄存器符号 ;REFRESH寄存器[22]bit : 0- auto refresh; 1 - self refresh BIT_SELFREFRESH EQU (1) ;用于节电模式中,SDRAM自动刷新 ;处理器模式常量: CPSR寄存器的后5位决定目前处理器模式 M[4:0] USER...