MOV DL,10 DIV DL MOV DH,AH MOV DL,AL MOV AH,2 ADD DL,30H INT 21H MOV DL,DH ADD DL,30H INT 21H DEC COUNTER JGE DONE MOV ISDONE,1
DONE:
CODE ENDS END START 第三题: #include
char dbyte[5] = {0x34,0x45,0x56,0x67,0xaf}; int i; CLI POP AX POP DX
IRET ;中断返回 PUSHF
CALL DWORD PTR OLDISR
ISR ENDP
}
for (i = 0; i < 5; i++)
printf(\printf(\__asm { }
for (i = 0; i < 5; i++)
printf(\printf(\return 0;
lea ebx, dbyte; mov eax, ebx; add eax, 5; mov cl, 4
ror byte ptr [ebx], cl inc ebx; cmp ebx, eax jb T;
T:
四. 实验结果(包括必要的截图) 第一题:
第二题:
第三题:
五. 实验体会
1.中断调用会将FLAGS压栈,结束时再出栈。
2.宏会被编译器在源码中展开替换为指令串;函数则是在运行时由call指令调用。