📄 00000005.htm
字号:
<BR> 2. WASM <BR> <BR> 这套是 WC 附的,虽然功能不强,但写 ASM 措措有馀!! <BR> <BR> /* REGISTER 方式 */ <BR> <BR> .C 中 <BR> <BR> extern "C" void _setvmode(int); <BR> <BR> #pragma aux _setvmode "*_" parm caller [eax]; <BR> // 这行若不写,在此例中也是可以,但不写, <BR> 参数传递顺序是 eax edx ecx ebx .... <BR> 且自己要加上底现在 函式名之後,此为 WC register <BR> 传递格式。 <BR> <BR> .ASM 中 <BR> <BR> public _setvmode_ <BR> <BR> ; 後面的 _ 是 WC 传 register 参数时必须加的。 <BR> <BR> ....... <BR> ...... <BR> _setvmode_ proc near <BR> int 10h <BR> ret <BR> _setvmode_ endp <BR> ..... <BR> <BR> ; 在此只列出片段 <BR> ; 当然任何 ASSMBER 都可用传 STACK 方式,WASM 亦可 <BR> <BR> <BR> 3. MASM / TASM <BR> <BR> /* 用 STACK 方式 */ <BR> <BR> .C 中 <BR> <BR> // 同一般 C Call ASM 方法,在此不累述 <BR> <BR> .ASM 中 <BR> <BR> ;MASM ;TASM <BR> <BR> .386p ideal <BR> p386 <BR> model flat,c model flat,c <BR> <BR> .code codeseg <BR> <BR> public _setvmode proc C _setvmode <BR> arg mode:dword <BR> ...... <BR> .... public _setvmode <BR> uses eax <BR> _setvmode proc C <BR> uses eax,mode:dword mov eax,mode <BR> int 10h <BR> mov eax,mode ret <BR> int 10h endp <BR> ret ...... <BR> _setvmode endp ..... <BR> ..... .... <BR> ... <BR> <BR> 好了!! 小弟眼睛又开始酸了,暂时就写到这,以後会再谈到 WC 的 <BR> ,若还有问题,老话一句 - " 拿信来砸我吧 !! " <BR> <BR>预告: <BR> 下篇将举出使用巨集的好处及注意事项!! 记得 " 收看 " ... <BR> < 巨集之评析 > <BR> <BR>--------------------------------------------------------------- <BR> <BR> <<< 本文版权属於作者 >>> <BR> 本文章可自由引用,拷贝,传阅,但需保持本文章之完整性,从标题 <BR> 到最後版权宣告,且不能用来做商业用途!! <BR> <BR> 若有任何问题,或是错误之处,欢迎来信批评指教!! 谢谢!! <BR> <BR> <BR> <BR> <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -