1樓:網友
參考王爽老師的組合語言,前面湯旺河邊朋友的挺正確的,補充一點就是說題目意思是把程式中的資料改寫了,其實就是dw定義的8個字型資料,用什麼來改呢,題目中有要求是從記憶體0:0~0:15中提取資料來更改。
所以使用的是mov cs:[bx],指向程式開始的地方,王爽老師書第6章節有一段話「程式在執行的時候cs中存放**段的段位址,所以可判孝沒以從cs中得到它們的段位址」。
可以看到程式在debug中執行除錯中是正確的,記憶體0:0~0:15中的資料把程式中的資料(由dw所定義的字型資料)更改了,這個程式應該是正確的。
原先我也以為這個程式會出錯就是以為它會把start對應的程式更改了這不就會有問慎宴題嘛,後來反省過來其實人家意思只是把start前面的資料段更改下而已,並不掘納會影響下面**的執行。
2樓:湯旺河邊
mov指令,不是累加,而是傳送。
程式把資料段0:0~0:15單元中的內容逐字(雙位元組)讀出,然後寫到**段對應的偏移位置,從而達到改寫程式中資料的目的。
根據原程式設計思路,所填指令必須是:mov cs:[bx],ax。
指令mov ax,[bx] 從資料段讀出乙個字,指令mov cs:[bx],ax把這個字寫到**段對應的偏移位置。
mov cs:[bx],ax的目的運算元是基址定址,預設的段暫存器是資料段暫存器,若要寫到其它段,必須加段暫存器字首。因為要把李坦資料寫到**段,所以,必須在目的運算元前面加上**段暫存器字首。
但,這段程式未等執行完畢就會產生不可預料的結果。因為程式主題指令很短,未等執行完畢,就被改寫,繼伏擾困而導致缺念結果不可預料。
用記憶體0:0-0:f中的內容改寫程式的資料?為什麼執行出來的結果最後4個位元組無法複製?
3樓:網友
可能與debuf有關係,有時候它要重新設定中斷。
為什麼要填這個啊?
4樓:
1.為了使堆疊段與**段處於乙個相同的段內,如果你填0則堆疊段ss的段位址為0000h,一般情況下不可能與cs處於同乙個段中,你第三空不填則push與pop就不配對,如果你再在程式中用到了堆疊要出錯。
2.第三空前面的指令為push [bx], 相當於 push ds:[dx] ds的位址為0000h與cs的位址不同,後面填的push cs:[bx],這兩條指令合起來相當於。
mov cs:[bx], ds:[bx](當然這條指令不合定址規則,只是表達個意思)
這樣則把cs段的dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
換成了相應的資料。
程式是將定義的資料逆序存放,但不明白程式中的cs沒有給出對應的段位址,程式是怎麼找到相應的記憶體位址?
5樓:網友
所謂逆序存放的原因是,引數按正序將引數數值壓入堆疊,因此ss:sp將指向引數,或者說通過這個位址可以尋訪到引數,只是其位址是逆序的而已。
這個程式中,堆疊段的段位址設定成與cs一致,一般對應的程式字尾是。com型的可執行程式,特點就是,資料段、**段和堆疊段在同一64kb記憶體區域內開設。
這個程式就是依據以上方式進行引數的壓棧和定址的,cs段是由作業系統在執行你的程式時指派給程式的,作業系統給程式申請各段記憶體,然後將**存放到申請的**段中,最後通過呼叫程式的方式通過cs:ip的定址跳轉到你程式的**入口處執行,因此在你程式執行時,可以認為,cs段就是已經準備好的你自己的**段位址。
王爽 組合語言 檢測6.1 對有些東西表示難以理解 希望各位大神幫幫忙
6樓:網友
1全部題意就是改寫程式(**段中)dw定義的資料。 你記住dw就是用來定義資料的。 所以題意是改它啦。
但另一方面你要理解,資料和**沒有本質的區別。 如果cs:ip指向dw定義的資料, 那麼這個資料也可就變成指令了。
記憶體單元位址與記憶體單元內容有什麼不同?
7樓:網友
記憶體單元位址就象你家的門牌號一樣,而記憶體單元內容就是就你家裡的家傢俱。
ecel中如何只用鍵盤修改單元格內容
excel單元格中按來f2鍵可以進入修改。源1 電腦開啟excel 2 開啟excel 後,選中要修改的單元格。3 選中單元格之後,按f2就可以把游標定位到單元格中最後一個字元後面。4 修改完之後,按回車鍵確定修改就可以了。excel中只用鍵盤修改單元格內容的方法如下 1 游標定位,可以用鍵盤的四個...
WPS單元格中刪除特定符號前面內容
游標定好?的位置並按住shift,再按ctrl home組合鍵,全部選中,按delete鍵,就ok了。wps 內容前面有個 符號,如何批量刪除啊 20 選中所有這些單元格,然後選擇清除格式,即可。在下圖中清除那兒點一下,然後選擇 清除格式 另外可以用定位的方法,快速定位選中你所有包含數字的單元格。資...
EXCEL中,判斷單元格的內容是否包含於另單元格中,用什麼函式可以比較
材料 工具 excel2010 1 如下圖在a列,我們輸入 的是我們計劃中應蒐集的資料 2 首先我們如下圖版,輸入了一個權查詢替換公式3 進一步修改公式,將公式的原始值後面加一個頓號4 當替換完頓號,如下圖就要對公式做進一步的修改5 在c2單元格中,原有公式的基礎上,外套一個if函式,讓當b列的值為...