摘要: LBAEL是一个别名,但是不需要分配存储空间,如果你熟悉过其他高级语言,理解声明和定义,别名就是起到了声明的作用,但是没有分配空间!;test_07INCLUDE irvine32.incINCLUDELIB Irvine32.libINCLUDELIB KERNEL32.LIB.dataval_lb1 LABEL WORDval1 DWORD 12345678hval_lb2 LABEL DWORDval2 WORD 5432hval3 WORD 9876h.codemain PROC mov ax,val_lb1 mov ebx,val_lb2 call DumpRegs ... 阅读全文
posted @ 2011-11-05 20:55 锅子 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 我们来看下 3个长度的操作符。 TYPE 返回的是相应数据类型的长度 LENGTHOF 计算数组的数目 SIZEOF 返回的是总的内存空间,可以按TYPE*LENGTHOF 计算。;test_06INCLUDE irvine32.incINCLUDELIB Irvine32.libINCLUDELIB KERNEL32.LIB.dataval1 WORD 5 DUP(3 DUP(?),0,0,0),0,0.codemain PROC mov eax,type val1 mov ebx,lengthof val1 mov ecx,sizeof val1 call DumpRegs exitma. 阅读全文
posted @ 2011-11-05 20:40 锅子 阅读(622) 评论(0) 推荐(0) 编辑
摘要: PTR 是一个很常用的操作符,是用来强制操作数的的大小的。;test_05INCLUDE irvine32.incINCLUDELIB Irvine32.libINCLUDELIB KERNEL32.LIB.dataarrayA BYTE 78h,56h,34h,12h.codemain PROC mov al,BYTE PTR arrayA mov ax,WORD PTR arrayA mov ax,WORD PTR arrayA+2 mov eax,DWORD PTR arrayA call DumpRegs exitmain endpEND main大家观察下 寄存器ea... 阅读全文
posted @ 2011-11-05 16:27 锅子 阅读(328) 评论(0) 推荐(0) 编辑
摘要: OFFSET 操作符返回的是 数据标号的偏移地址,看代码;test_03INCLUDE irvine32.incINCLUDELIB Irvine32.libINCLUDELIB KERNEL32.LIB.datab_val BYTE ?w_val WORD ?d_val1 DWORD ?d_val2 DWORD ? .codemain PROC mov eax,offset b_val m... 阅读全文
posted @ 2011-11-05 15:07 锅子 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 其实前面我们见识过了 add,就是数学中加法,减法 就是sub inc 和 dec 这是一对,inc 是递增+1,dec是递减-1。 neg 就是取反,简单的说 数值前面 + 变- ,或者- 变 +。 加减运算 会影响 一些相关的EFLAGS ,具体参考上一帖子。 看代码;test_02INCLUDE irvine32.incINCLUDELIB Irvine32.libINCLUDELIB KERNEL32.LIB.dataval1 dWORD 100h.codemain PROC mov eax,val1 ;100h传递到寄存器eax inc eax ;eax+1h dec eax ... 阅读全文
posted @ 2011-11-05 09:31 锅子 阅读(621) 评论(0) 推荐(0) 编辑