地址代碼查詢 匯編數(shù)據(jù)段地址問題,看我的源代碼,從反匯編的代碼中可以看到段地址DS應(yīng)該為075A但是D命令查看的結(jié)果不是?
匯編數(shù)據(jù)段地址問題,看我的源代碼,從反匯編的代碼中可以看到段地址DS應(yīng)該為075A但是D命令查看的結(jié)果不是?加載DOS的EXE文件時,CS的初始化處理是指向entry語句對應(yīng)的代碼段地址,而DS、ES
匯編數(shù)據(jù)段地址問題,看我的源代碼,從反匯編的代碼中可以看到段地址DS應(yīng)該為075A但是D命令查看的結(jié)果不是?
加載DOS的EXE文件時,CS的初始化處理是指向entry語句對應(yīng)的代碼段地址,而DS、ES、SS是相同的。它們都指向加載程序時程序段前綴(PSP)的段地址,而不是程序中定義的數(shù)據(jù)、堆棧和其他段的段地址。當程序運行時,用戶必須編寫自己的代碼將相應(yīng)的段地址傳輸?shù)紻S。
從您的程序中可以看到,加載后,由程序中的數(shù)據(jù)段定義的數(shù)據(jù)段的地址為071a。但是DS在加載程序時并沒有直接指向它。程序開始運行后,使用兩條指令將076a傳輸?shù)紻S。
只有在這兩條指令被執(zhí)行之后,DS才會變成076a。
當您剛剛加載程序并且沒有運行它時,DS并沒有被更改為076a。075a實際上是PSP的段地址。
易語言,置入代碼()怎么用?
放置代碼是easy language核心支持庫的另一個命令,它將指定的機器指令代碼數(shù)據(jù)放置在編譯文件的代碼段的當前語句位置。具體來說,E語言中的嵌入式代碼實際上是X86指令的一個片段,它作為機器指令執(zhí)行,類似于其他語言中的嵌入式匯編。在調(diào)用嵌入代碼的地方,它可以自動計算代碼的段地址和偏移地址,然后寫入數(shù)據(jù)。諸如寫入內(nèi)存文本之類的命令是通過調(diào)用API函數(shù)來實現(xiàn)的。