//--------------------------------------------------------------- // EXAMPLE EX18.C : Demonstrate use of IN-LINE ASSEMBLY. // // C.P. Diduch, Dec 1999. //--------------------------------------------------------------- #define KEY_PA 0x138 // 82C55A port addresses for PA, #define KEY_PB 0x13A // PB, #define KEY_PC 0x13C // PC and the #define KEY_CON 0x13E // Control Register. #include // conio.h contains prototypes for // inportb() and outportb(). //--------------------------------------------------------------- void main() { unsigned X; outportb(KEY_CON, 0x82); // Initialize 82C55A PPI with ports // KEY_PC and KEY_PA as OP ports and // port PB as an IP port. X = 1; asm { mov bx, 1000 mov ax, X M: rol ax, 1 mov dx, 0x138 out dx, al mov dx, 0x13C push ax mov al, ah out dx, al pop ax dec bx jnz M } }