上一页 1 ··· 176 177 178 179 180 181 182 183 184 ··· 215 下一页
摘要: 譬如 EAX AX AH AL 四个储存器, 真实存在的其实只有一个 EAX, AX AH AL 不过是不同的访问方式. 11111111 11111111 11111111 11111111 : EAX 11111111 11111111 11111111 11111111 : AX 11111111 11111111 11111111 11111111 : AH 11111111 111111... 阅读全文
posted @ 2008-01-30 21:01 万一 阅读(3989) 评论(5) 推荐(0)
摘要: //以下三个函数功能一样, 但效率不同 {Fun1 需要读取常数 0, 最慢} function Fun1: Integer; asm mov eax, 0 end; {Fun2 与 Fun3 只是操作 CPU 的寄存器, 比 Fun1 快} function Fun2: Integer; asm sub eax, eax end; {Fun3 最快} function Fun3:... 阅读全文
posted @ 2008-01-30 11:18 万一 阅读(4281) 评论(17) 推荐(0)
摘要: //XCHG 指令: 交换寄存器的内容 var x,y: Integer; begin x := 1; y := 9; asm mov eax, x mov ecx, y xchg eax, ecx {xchg 的参数必须至少一个是寄存器, 不能有 xchg x,y 类似的操作} mov x, eax mov y, ecx end; ... 阅读全文
posted @ 2008-01-30 10:14 万一 阅读(3746) 评论(0) 推荐(0)
摘要: //小写字母转大写字母 function Fun1(C: Char): Char; asm sub C, 32 //sub C, 'a'-'A' {竟也可以这样写} end; //大写字母转小写字母 function Fun2(C: Char): Char; asm add C, 32 end; //测试 procedure TForm1.Button1Click(Sende... 阅读全文
posted @ 2008-01-30 00:08 万一 阅读(5265) 评论(4) 推荐(0)
摘要: //准备一个在汇编中要调用的函数 function DelphiFun(x,y: Integer): Integer; begin Result := x + y; end; //汇编函数 function AsmFun: Integer; asm mov eax, 1 {eax 对应函数的第一个参数, 这里给第一个参数赋值为 1} mov edx, 2 {e... 阅读全文
posted @ 2008-01-29 21:24 万一 阅读(4304) 评论(5) 推荐(0)
摘要: 类型 助记符 助记符简写 所占字节数 数值范围 字节 BYTE DB 1 0..255 字 WORD DW 2 0..65535 双字 DWORD DD 4 0..4294967295 远字 FWORD DF 6 四字 QWORD DQ 8 十字节 TBYTE DT 10 有符号字节 SBYTE 1 -128..127 有符号字 S... 阅读全文
posted @ 2008-01-29 17:26 万一 阅读(3473) 评论(0) 推荐(0)
摘要: //计算 x 的 n 次方的函数 function Fun(x,n: Integer): Integer; asm //mov eax, x {因为 eax 会先获取第一个参数, 这句可以省略} mov ecx, n {ecx 是个计数寄存器, 会记录循环的次数, 每循环一次 ecx 的值就会减1} sub ecx, 1 @Lable1... 阅读全文
posted @ 2008-01-29 17:05 万一 阅读(5558) 评论(13) 推荐(0)
摘要: //自定义记录用于测试 Type TMyRec = record i: Integer; c: Char; end; //在汇编中使用记录的过程 procedure GetRec(Rec: TMyRec); asm mov eax.TMyRec.i, 100 {eax 会接受第一个参数} mov eax.TMyRec.c, 'M' end; //测试 pr... 阅读全文
posted @ 2008-01-29 16:05 万一 阅读(3483) 评论(18) 推荐(0)
摘要: 除了 Byte、Word、Cardinal、Integer 外, Delphi 的整数类型还有: Longint、Longword、Shortint、Smallint、Int64 其中 Longint 相当于 Integer; Longword 相当于 Cardinal. 这样还有三种类型: Shortint、Smallint、Int64 //Shortint 是1字节(8位)有符号整数 va... 阅读全文
posted @ 2008-01-29 12:49 万一 阅读(3531) 评论(3) 推荐(0)
摘要: var I: Integer; begin //Integer 类型是4字节(32位)有符号整数, 最高位是符号位, 如果是正数, 符号位是 0、负数的符号位是1 //所以 Integer 的最大值是: 01111111 11111111 11111111 111111112 asm mov I, 01111111111111111111111111111111B; ... 阅读全文
posted @ 2008-01-29 11:59 万一 阅读(6848) 评论(3) 推荐(0)
上一页 1 ··· 176 177 178 179 180 181 182 183 184 ··· 215 下一页