Re: [問題]組語

看板Programming作者 (ggg)時間18年前 (2007/09/23 17:20), 編輯推噓5(503)
留言8則, 4人參與, 最新討論串2/3 (看更多)
※ 引述《twisters121 (...)》之銘言: : 程式在編譯和連結上都沒有問題 : 但程式執行時 有時候可以印出 : 有時候確不可以 : 這是什麼問題??? : 程式碼如下 : : .model small : .stack 100h : .data : message db "hello world",0dh,0ah,"$" : .code : main proc : mov ax,@data : mov ds,ax : mov dx,offset message : mov ah,09h : int 21h : mov ax,4c00h : int 21h : main endp : end main : : → james732:把code放上來吧 218.172.102.46 09/22 16:16 : ※ 編輯: twisters121 來自: 61.70.53.157 (09/22 16:31) : 推 LPH66:看來沒啥問題啊@@ 140.112.250.80 09/22 18:42 : 推 ggg12345:先在dos prompt跑一次debug退出再跑hello 140.115.6.234 09/22 23:03 : 推 twisters121:樓上是正解..但不知為何會這樣 61.70.53.157 09/23 14:01 ============== 這可能還要請其他高人來指正補充. 如果是用 turbo ASM 提供的 IDE 發展環境, 她會在 winXX 下 fork 出一個 v86 process 來執行要運行的指令(hello.exe) , 這個 v86 會完整模擬 DOS 使用環境, 那就可反覆正確執行. 但, 若用 DOS prompt 調出 command line 再下指令執行時, 可能是 MicroSoft 不再想支援 DOS Mode operation , 那個 dos prompt 出 現時就沒建好 int 21h 的 DOS 支援環境. 但用 debug 執行後, debug 通常會補上需要用到的 int vector 及 psp , 因此就會正常執行. 完整的 DOS 是 1MB 範圍的 8086 空間, 包含 DOS 開機時塞進 Himem 的 driver program 及 INT table . WinXX 啟動的 DOS Prompt 是虛 擬的 V86 , 需要透過 OS 與 VM86 mode 切換來銜接 1MB 區的絕對地 址, Win9X 之後, 這種支援就被取消了, 可能是要強迫使用者使用新版 的應用程式. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.6.234

09/23 22:54, , 1F
Program compatibility flags ?
09/23 22:54, 1F

09/24 08:07, , 2F
很棒的說明...感謝喔~~
09/24 08:07, 2F

09/24 19:44, , 3F
先把DOS開成全螢幕 再執行看看
09/24 19:44, 3F

09/25 00:01, , 4F
全螢幕會把display掛給DOSprompt,有效.但
09/25 00:01, 4F

09/25 00:03, , 5F
怎麼切回去 window ?
09/25 00:03, 5F

09/27 16:14, , 6F
ctrl+Esc
09/27 16:14, 6F

09/27 16:55, , 7F
記得是這兩鍵沒錯,不過我的w2k切不回去了
09/27 16:55, 7F

09/30 17:07, , 8F
我是用win xp..可以
09/30 17:07, 8F
文章代碼(AID): #16zY_1od (Programming)
討論串 (同標題文章)
本文引述了以下文章的的內容:
4
6
完整討論串 (本文為第 2 之 3 篇):
1
1
5
8
4
6
文章代碼(AID): #16zY_1od (Programming)