- 浏览: 1235368 次
- 性别:
- 来自: 广州
-
文章分类
- 全部博客 (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解析和序列化
声明数组实例:
; Test6_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 ;声明并初始化有三个元素的 DWORD 数组; 该数组每个元素是 4 字节 val dd 11,22,33 .code start: mov eax, val PrintDec eax ;11 mov eax, val[4] PrintDec eax ;22 mov eax, val[8] PrintDec eax ;33 ret end start
上面的例子也可以这样写:
; Test6_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 11 dd 22,33 .code start: mov eax, val[4*0] PrintDec eax ;11 mov eax, val[4*1] PrintDec eax ;22 mov eax, val[4*2] PrintDec eax ;33 ret end start
使用伪指令 DUP:
; Test6_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 ;声明有三个元素的 DWORD 数组, 并把每个元素初始化为 6 v1 dd 3 dup(6) ;声明有三个元素的 DWORD 数组, 无初始化; 对全局变量, 没有初始化的将用 0 填充 v2 dd 3 dup(?) .data? ;声明有三个元素的 DWORD 数组 v3 dd 3 dup(?) .code start: DumpMem offset v1, 12 ;06 00 00 00 - 06 00 00 00 - 06 00 00 00 DumpMem offset v2, 12 ;00 00 00 00 - 00 00 00 00 - 00 00 00 00 DumpMem offset v3, 12 ;00 00 00 00 - 00 00 00 00 - 00 00 00 00 ret end start
现在可以区别未初始化的变量在 .data 段和 .data? 的区别:
; Test6_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 v1 dd 4096 dup(?) ;未初始化变量在 .data 段, 生成的 exe 文件会根据大小分配内存 .code start: PrintText 'Hi' ret end start ; ------------------------------------------------------ ; 上面的程序的 exe 是 18944 字节 ; 下面的程序的 exe 是 2560 字节 ; 它们刚好相差 4096*4 个字节 ; 结论: 不需要初始化的变量应该声明在 .data? 段 ; ------------------------------------------------------ ; Test6_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? v1 dd 4096 dup(?) ;未初始化变量在 .data? 段 .code start: PrintText 'Hi' ret end start
继续 dup 的例子:
; Test6_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 2 dup(1,2,3) .code start: DumpMem offset val, 24 ;01000000-02000000-03000000-01000000-02000000-03000000 ret end start
嵌套数组:
; Test6_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 2 dup(3 dup(1,2)) .code start: DumpMem offset val, 48 ;1 2 1 2 1 2 1 2 1 2 1 2 ret end start
发表评论
-
学 Win32 汇编[34] - 宏汇编(1)
2011-12-22 13:25 765从接触 C 语言时, 我就不大喜欢宏; 但为了看懂别人的代码也 ... -
学 Win32 汇编[33] - 探讨 Win32 汇编的模块化编程
2011-12-22 13:23 590我觉得所谓的模块化有两种: "假模块化" ... -
学 Win32 汇编[32] - 子程序进阶
2011-12-20 09:49 704接: 学 Win32 汇编[9]: 子过程中的变量声明 ... -
学 Win32 汇编[31] - 结构与联合
2011-12-20 09:48 549结构和联合分别用 struct、union 定义, 都是 en ... -
学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等
2011-12-20 09:48 2130.IF、.ELSEIF、.ELSE、.ENDIF: 条件伪指令 ... -
学 Win32 汇编[29] - 串指令: MOVS*、CMPS*、SCAS*、LODS*、REP、REPE、REPNE 等
2011-12-20 09:47 1989这里的 "串" 并不单指字符串, 包括所有 ... -
学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
2011-12-20 09:46 1472跳转指令分三类:一、无条件跳转: JMP;二、根据 CX、EC ... -
学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
2011-12-19 09:03 1388MUL: 无符号乘 ;影响 OF、CF 标志位 ;指 ... -
学 Win32 汇编[26] - 加减指令: INC、DEC、NEG、ADD、ADC、SUB、SBB、CMP
2011-12-19 09:02 1477;INC(Increment): 加一;DEC(Decreme ... -
学 Win32 汇编[25] - 符号扩展指令: CBW、CWDE、CDQ、CWD
2011-12-19 09:01 1634CBW、CWDE、CDQ、CWD: 扩展指令 ;CBW ... -
学 Win32 汇编[24] - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
2011-12-19 09:01 1461SHL、SHR、SAL、SAR: 移位指令 ;SHL( ... -
学 Win32 汇编[23] - 位测试与位扫描指令: BT、BTC、BTR、BTS、BSF、BSR
2011-12-19 09:00 2130BT、BTS、BTR、BTC: 位测试指令 ;BT(B ... -
学 Win32 汇编[22] - 逻辑运算指令: AND、OR、XOR、NOT、TEST
2011-12-14 13:23 1340AND: 逻辑与 ;该指令会置 CF=OF=0; 其结 ... -
学 Win32 汇编[21] - 传送指令: MOV、LEA、XCHG、XLATB、XLAT、MOVZX、MOVSX
2011-12-14 13:22 1121汇编指令的一般性要求: 1、两个操作数的尺寸必须一致; 2、操 ... -
学 Win32 汇编[20]: 洞察标志寄存器
2011-12-14 13:21 66915 14 13 12 11 10 9 8 7 6 ... -
学 Win32 汇编[19]: 查看二进制等相关函数
2011-12-14 13:20 609在 masm32.inc 中有这样几个函数的声明: by ... -
学 Win32 汇编[18]: 关于压栈(PUSH)与出栈(POP) 之二
2011-12-13 14:28 1031由于 "栈" 是由高到低使用的, 所以新压 ... -
学 Win32 汇编[17]: 关于压栈(PUSH)与出栈(POP) 之一
2011-12-13 14:27 1069记得刚学多线程的时候, 碰到一个结构: //Delphi ... -
学 Win32 汇编[16]: 常用寄存器的常规功能
2011-12-13 14:26 770通用寄存器 EAX ... -
学 Win32 汇编[15]: LOOP 与标号
2011-12-13 14:25 826Loop 是反复执行;从哪反复? 这要用到 "标号& ...
相关推荐
汇编语言中的伪指令表解析 汇编语言中,伪指令是一种特殊的指令,它们不是机器指令,而是编译器或汇编器用来控制编译或汇编过程的指令。下面是常用伪指令的解析: 1. DB/DW/DD/DT:定义数据属性 DB(Define Byte...
**ASSUME** 用于告知汇编器哪些段寄存器与特定段关联,以便正确生成指令的目标代码。 - 一般格式: ``` ASSUME 段寄存器:段名[, 段寄存器:段名, ...] ``` - 示例: ``` ASSUME CS:CODE ``` 通过上述介绍...
在IT领域,汇编语言是一种低级编程语言,它与机器指令系统紧密相关,可以直接控制计算机硬件。在处理数组数据时,汇编语言提供了一种高效且直接的方式,尽管这通常需要对内存管理和指针操作有深入理解。下面将详细...
为了提高编程效率与代码的可读性,汇编语言中引入了多种伪指令。这些伪指令并非机器可以直接识别的指令,而是由汇编器在汇编过程中进行处理的特殊命令。本文将详细介绍一些常见的汇编伪指令及其用法。 #### 二、...
#### 知识点一:伪指令与存储空间分配及初始化数据 **伪指令**是汇编语言中的一种特殊指令,它们并不被CPU直接执行,而是由汇编器在汇编过程中处理。伪指令主要用于辅助程序的编写和调试,比如定义变量、分配内存等...
- `DB`伪指令用于定义字节数据,如`DATA2 DB 10 DUP(0)`定义10个字节的0。 - `END`伪指令标识程序结束,`START`可能是程序的入口点。 汇编语言程序设计是计算机科学的基础,对于理解计算机底层工作原理和优化程序...
数据定义伪指令是用于定义数据的,包括常量符号赋值伪指令、各种类型变量定义伪指令、重复操作符 DUP 等。 六、符号定义伪指令 符号定义伪指令用于定义符号,包括 EQU 和=两种定义方式。EQU 定义的符号不可更改,...
常见的伪指令包括符号定义伪指令、内存数据定义伪指令、段定义伪指令、段寄存器说明伪指令、定位伪指令、子程序伪指令等。 符号定义伪指令EQU用于给符号名赋值,格式为:<符号名> EQU <表达式>。例如:EQU 88HPORT ...
段定义伪指令`SEGMENT`用于定义一个新的段,它告诉汇编器一个新段的开始。例如,在给定的部分内容中,有数据段、堆栈段和代码段的定义: ```assembly DATASEGMENT BUFDB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,FFH ...
**DUP**:重复数据指令,用于初始化数据段中的数组。 **SEGMENT/ENDS**:段定义指令,用于定义代码段或数据段。 **ASSUME**:假设指令,用于指定段寄存器和段之间的关联。 **ORG**:起始位置指令,用于指定段的...
在JavaScript编程中,"dup"可能与对象复制、函数重复调用或数组元素复制有关。开发者可能使用了某种技巧或模式来实现代码的复用和模块化。例如,他们可能利用了JavaScript的`Object.assign()`方法进行对象复制,或者...
### 汇编语言基础与实践:跟着锅子学习32位汇编 #### 一、初识32位汇编:编写第一个程序 在学习32位汇编的过程中,锅子采用了一种较为纯粹的方法,尽量脱离Windows API,以便更好地理解底层原理。本次介绍的第一个...
win10安装git报错 fatal:open /dev/null or dup failed: No such file or directory错误,将该文件复制到C:\Windows\System32\drivers 替换掉原有的null.sys文件重启即可
13. DUP伪指令:汇编语言中,DUP伪指令用于定义数组。例如,问题17中,DA1 DB 2 DUP(3,5,7)可等同于DA1 DB 3,5,7。 本资源涵盖了汇编语言程序设计的多个方面,旨在帮助学生和开发人员提高汇编语言编程能力。
本次实验主要通过几个具体的编程任务来加深理解汇编语言中循环结构和过程调用的应用,掌握8086 CPU的基本指令系统,尤其是循环、分支结构以及子程序调用的相关指令。实验具体分为以下几个部分: 1. **两个数组之和*...
汇编语言是计算机系统中的低级编程语言,它直接对应于机器的指令集,对于理解计算机的工作原理至关重要。本篇文章将详细介绍汇编指令词汇大全,涵盖各种基本操作,包括数据传输、算术运算、逻辑操作、控制流以及输入...
6. **赋值伪指令 (EQU)**:EQU伪指令用于为符号赋予一个常数值或已有的符号,如`LEN EQU 10`,`BLOCK EQU 22H`。在后续指令中,可以用LEN和BLOCK替代相应的值。 此外,汇编语言的语句格式包括四个字段:标号、操作...
汇编语言是各种CPU所提供的机器指令的助记符的集合,人们可以用汇编语言直接控制硬件系统进行工作。汇编语言是很多相关课程(如:数据结构、操作系统、微机原理等)的重要基础。为了更好地引导、帮助读者学习汇编语言...
##### 伪指令与伪操作 1. **定义符号的伪指令**: - **EQU**:用于定义常量。 - **=**:用于定义可变的符号。 - **PURGE**:用于删除符号的定义。 2. **定义数据的伪指令**: - `DB`:定义字节。 - `DW`:...
在创建数组时,dup 指令也可以用于复制数组的引用,以便将其传递给相关的方法。 在 Java 中,dup 指令的使用非常频繁,例如在创建异常对象时,需要使用 dup 指令来复制对象的引用,以便将其传递给实例初始化方法。...