上一页 1 ··· 178 179 180 181 182 183 184 185 186 ··· 215 下一页
摘要: //可以用 asm 代替 begin function Fun(x: Integer): Integer; asm mov eax, x inc eax end; { 汇编中的 inc 指令和 Delphi 中的 inc 是一样的; 本例也同时证明 eax 寄存器确实保存着函数的返回值. } procedure TForm1.Button1Click(Sender: TObje... 阅读全文
posted @ 2008-01-24 20:04 万一 阅读(6145) 评论(5) 推荐(0)
摘要: 王爽老师书上说, CPU 内部主要就是寄存器. 现在我们在 32 位的系统下工作, 当然主要使用的是 32 位寄存器; 那它和 8 位、16 位的寄存器又有什么关系呢? 从网上找到一个简洁明了的图片: EAX 是 32 位的, 也就是 4 个字节大小; 它的低两位就是 AX; AX 是 16 位的, 又分 2 个字节; 它的高字节是 AH、低字节是 AL; AH 与 AL 是 8 位的. ... 阅读全文
posted @ 2008-01-24 17:37 万一 阅读(4916) 评论(3) 推荐(0)
摘要: //在汇编中使用常量 var a: Integer; const n = $10; begin asm mov ecx, 10 {使用十进制常数} mov a, ecx end; ShowMessage(IntToStr(a)); {10} asm mov ecx, $10 {使用十六进制常数} ... 阅读全文
posted @ 2008-01-24 16:13 万一 阅读(4179) 评论(5) 推荐(0)
摘要: //在汇编中访问 Delphi 的变量可以使用 & 操作符 procedure Proc(str1,str2: string); var s1,s2: string; begin asm mov ecx, &str1 {} mov edx, &str2 mov &s1, ecx {} mov &s2, edx end; ShowMessa... 阅读全文
posted @ 2008-01-24 16:04 万一 阅读(5077) 评论(21) 推荐(0)
摘要: //测试寄存器: 如果只有两个参数, 看看 ECX EDX 谁来接受第二个参数 procedure Proc(x,y: Integer); var a,b: Integer; begin asm MOV a,ECX MOV b,EDX end; ShowMessage(IntToStr(a) + #44 + IntToStr(b)); end; //测试 p... 阅读全文
posted @ 2008-01-24 15:38 万一 阅读(4918) 评论(14) 推荐(0)
摘要: CPU 提供了诸多寄存器, 但在 Delphi 的过程和函数中, 只有 EAX ECX EDX 三个寄存器可以自由使用; 如果改变了其他寄存器, 在过程和函数结束前要给恢复. 记得前面学习过 Delphi 的过程和函数默认的调用约定是 Register , 前三个参数通过寄存器传递, 其他参数存与栈. 它所指的三个寄存器就应该是 EAX ECX EDX 了. 看资料介绍应该是: EAX 先接受第... 阅读全文
posted @ 2008-01-24 11:50 万一 阅读(6437) 评论(25) 推荐(0)
摘要: 前面知道了一个汇编的赋值指令(MOV), 再了解一个加法指令(ADD), 就可以做个例子了. 譬如: ADD AX,BX; 这相当于 Delphi 中的 AX := AX + BX; 另外提前来个列表 - Delphi 可以用汇编管理以下寄存器: 32 位寄存器: EAX EBX ECX EDX ESP EBP ESI EDI 16 位寄存器: AX BX CX DX SP BP SI DI ... 阅读全文
posted @ 2008-01-23 18:30 万一 阅读(8809) 评论(17) 推荐(0)
摘要: 汇编语言不区分大小写. 关键字 用途 AH AL AND AX BH BL BP BX BYTE CH CL CS CX DH DI DL DS DWORD DX EAX EBP EBX ECX EDI EDX EIP ES ES... 阅读全文
posted @ 2008-01-23 14:41 万一 阅读(7078) 评论(8) 推荐(0)
摘要: 非科班出身, 现在才接触汇编, 惭愧呀, 好好学! 主选课本是清华大学王爽老师的《汇编语言》. 推荐 王爽老师的汇编网 汇编语言之前是机器语言. 机器语言是机器指令的集合, 机器指令是一系列二进制数字, 计算机将之转换为一系列高低电平, 而实现运算. 在 PC 机上运行机器指令的是 CPU; 不同的 CPU 有不同的指令, 所以某种汇编语言也只是针对某系列的 CPU. 王爽老师举了一个用机... 阅读全文
posted @ 2008-01-23 14:22 万一 阅读(11521) 评论(15) 推荐(1)
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton... 阅读全文
posted @ 2008-01-23 01:22 万一 阅读(8035) 评论(7) 推荐(0)
上一页 1 ··· 178 179 180 181 182 183 184 185 186 ··· 215 下一页