ASM
push bx //此行汇编必须要有,且在第一行
mov ax,0ffh
add ax,033h
pop bx //必须恢复BX寄存器,否则系统出现不可预料的错误,小心当机。
END;
push bx //此行汇编必须要有,且在第一行
mov ax,0ffh
add ax,033h
pop bx //必须恢复BX寄存器,否则系统出现不可预料的错误,小心当机。
END;
解决方案 »
- delphi + sql 2K怎么实现互联网的管理系统
- 关于Windows服务的问题,急啊!!!
- 我想请教一下 treeview 的使用操作
- 求........有关于socket的线程方面的资料!
- 关于DLL和接口的区别........
- 怎样把字窗口的标题栏去掉?
- DELPHI 里面时间函数的问题!!!!!!!!!!!!!
- 现在做两层的东西,请问怎样用adoconnection怎样连接网络里其他电脑的MS SQL,可以用这东西连接的吗,请问如果可以
- 滚动条的问题
- 如何遍历目录...
- 给位兄台!小弟有要事相求!!!!!来者分!!!!!
- 怎么像TOM,sina.com一样在IE地址栏下实现工具条?高手请教!!!!!!
汇编函数后面都带register指示附,比如:
functin addIt(a,b: integer): integer; register
asm
mov eax a
add eax,b
end; 关于返回值类型的规则是:能装多大的积存器返回什么值。Delphi帮助里有说明。
函数参数默认都是[EBP - 4] 是第一个参数,[EBP - 8]是第二个参数等。
但很重要的一个规则是:EAX积存器总指象第一个参数a,EDX积存器总指象第二个参数b,ECX积存器总指象第3个参数,其他的用[EBP - 4*n]方法即可存取。
可以参考System.TObject.ClassName等方法。
asm .........end
procedure abc(achar:char;n:word);
var cc:char;
begin
cc:=achar;
asm
mov dx,n
mov al,cc
mov ah,1
int 14h
end;
end;