汇编语言实验报告 下载本文

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 int main() {

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指令调用。