匯編語言endp 匯編語言中proc far是什么意思?
匯編語言中proc far是什么意思?你說的是這樣一個程序框架:Main proc far push DS XOR ax,ax push ax。。。重新連接主端。這是DOS下最原始的exe程序框架。當
匯編語言中proc far是什么意思?
你說的是這樣一個程序框架:Main proc far push DS XOR ax,ax push ax。。。重新連接主端。這是DOS下最原始的exe程序框架。當時DOS的版本很低,DOS沒有提供4CH DOS函數(shù)調用,程序的結尾只能用int 20h來完成。int 20h結束程序時,CS指向程序段前綴(PSP)所在的段地址。因此,程序需要將主程序定義為proc far,它將RET指令組裝為retf。代碼的前三條指令是將PSP段地址放在堆棧上,然后將0放在堆棧上。這樣,在執(zhí)行RET時,在PSP段的偏移地址處執(zhí)行int 20h指令,以確保正確返回DOS。后來,DOS的一個稍高的版本有第4CH個函數(shù)調用,所以不需要這個程序框架。教科書中的許多程序都是復制的,所以人們經(jīng)常看到這種過時的代碼。
匯編語言中proc far是什么意思?
您正在談論這樣一個程序框架:mainprocfarpush dsxorax、axpushax。。。retmaintendpendmin。這是DOS下最原始的exe程序框架。當時DOS的版本很低,DOS沒有提供4CH DOS函數(shù)調用,程序的結尾只能用int20h來完成。當int20h結束程序時,CS指向程序段前綴(PSP)所在的段地址。因此,程序需要將主程序定義為procfar,將RET指令組裝為retf。代碼的前三條指令是將PSP段地址放在堆棧上,然后將0放在堆棧上。這樣,在執(zhí)行RET時,在PSP段的偏移地址處執(zhí)行一條int20h指令,以確保正確返回DOS。后來,DOS的一個稍高的版本有第4CH個函數(shù)調用,所以不需要這個程序框架。教科書中的許多程序都是復制的,所以人們經(jīng)常看到這種過時的代碼。
匯編語言main proc far是什么意思?
遠近是子程序調用的參數(shù)。如果子程序和調用程序在同一段中,子程序參數(shù)設置為near。如果子程序和調用程序不在同一段中,則子程序參數(shù)設置為far。在這里,主程序被定義為far,因為系統(tǒng)將主程序視為DOS調用的子例程。DOS內核和主程序不在同一段地址,所以主程序叫far,程序參數(shù)應該用far