2013-04-06 44 views
0

我有一個彙編程序,我試圖通過調試進行測試,但是程序通常具有用戶輸入的整數。有沒有一種方法來調試程序,仍然能夠「運行」它的意義上說,我可以輸入整數到程序中,但仍然在寄存器中查看值?如何調試程序/查看需要用戶輸入的寄存器

在此先感謝您的幫助。

+0

什麼調試器?什麼OS?你如何閱讀用戶輸入?向我們展示代碼。 – nrz 2013-04-06 22:09:10

+0

對不起,這還不是很清楚,我在DosBox裏面使用了nasmide調試器。我目前正在使用Int 21H中斷之一,具體來說AH = 01來讀取用戶輸入。 – Calibre 2013-04-06 22:14:57

回答

0

有沒有一種方法來調試程序,仍然能夠「運行」它的意義上說,我可以輸入整數到程序中,但仍然在寄存器中查看值?

是的,任何值得它的鹽的調試器都應該能讓你通過指令執行你的代碼指令。

例如,Borland的Turbo Debugger開放WATCOM Watcom DebuggerTrace IntoStep Over執行選項。兩者相似但不完全相同。後者執行整個子程序作爲call subroutine指令的一部分,前者只執行一條指令,無論是否爲call

瞭解如何在調試器中執行此操作。查找它的UI和/或文檔。

此外,調試器通常允許您根據自己選擇的指令設置斷點並執行代碼,直到遇到斷點。你也可以使用它。

+0

好的謝謝..我老實說不知道我在用什麼調試器,但我認爲它是nasmide或實際上只是在DOS Shell中進行調試。無論如何,我決定只是放入一些設置值而不是用戶輸入,這允許我進行一些基本的調試。感謝您的幫助,但我可能會嘗試查看是否可以下載其中一個調試器。 – Calibre 2013-04-06 23:16:50

+0

您可以肯定地下載'wd.exe'作爲開放Watcom C/C++的一部分。 – 2013-04-06 23:17:59

+0

如果它是普通的老DEBUG(呃...呃...),不要嘗試用'int 21h'來代替'使用'p'roceed。這應該等待你輸入一個字符。我記得,儘管dos並不能很好地工作! – 2013-04-07 00:14:33