摘要: //准备一个在汇编中要调用的函数 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)
摘要: var B: Byte; W: Word; C: Cardinal; begin {Byte 是1字节(8位)无符号整型, 其最大值是 111111112} asm mov B, 11111111B; end; ShowMessage(IntToStr(B)); {255} {Word 是2字节(16位)无符号整型, 其最大值是 11111111 11... 阅读全文
posted @ 2008-01-29 11:24 万一 阅读(6267) 评论(6) 推荐(0)