引用 | 编辑
wusun
2005-10-14 01:54 |
1楼
▲ ▼ |
就微软的编译器来说:
可以用inline assembly的方式来达成 Example1: 复制程式 __asm { mov al, 2 mov dx, 0xD007 out dx, al } 复制程式 __asm mov al, 2 __asm mov dx, 0xD007 __asm out dx, al 复制程式 __asm mov al, 2 __asm mov dx, 0xD007 __asm out dx, al x1 |
引用 | 编辑
kevinliao
2005-10-14 10:50 |
2楼
▲ ▼ |
喔, 那我也来说一下 Linux 中 gcc 的 inline assembly 使用范例:
复制程式 asm ("movb $0x2, %al\n\t" "movw $0xd007, %dx\n\t" "outb %al, %dx"); 有没有看出和 Microsoft 的例子有哪些不同的地方呢 x1 |
引用 | 编辑
kevinliao
2005-10-14 13:25 |
3楼
▲ ▼ |
关于 gcc 的 inline assembly 方面的书籍好像没有, 提供一些连结当作参考, 有兴趣的自行去看看啰...
http://asm.sourceforge.net/articles/rmiyagi-inline-asm.txt http://www-128.ibm.com/developerworks/linux/library/l-ia.html?dwzone=linux http://asm.sourceforge.net/articles/linasm.html http://asm.sourceforge.net/howto/Assembly-HOWTO.html http://linuxassembly.org/ http://www.delorie.com/djgpp/doc/brennan/brennan_att_inline_djgpp.html x0 |