1月27日彙編日記

2021-04-15 00:48:19 字數 1014 閱讀 4625

關於ds暫存器(資料段暫存器)(cs是**段暫存器)

8086cpu不支援資料直接送入段暫存器的操作,ds是乙個段暫存器,所以 mov ds,100h非法,只能用乙個暫存器進行中轉

在8086cpu加電啟動或復位後(即cpu剛開始工作時)cs和ip被設定為cs=f000h,ip=ffffh,即在8086pc機剛啟動時,cpu從記憶體ffff0h單元中讀取指令執行,ffffoh單元中的指令是8086pc機開機後執行的第一條指令。

mov指令的幾種形式:

mov 暫存器,資料

mov 暫存器,暫存器

mov 暫存器,記憶體單元

mov 記憶體單元,暫存器 (mov [0],ax)

mov 段暫存器,暫存器

sub和add的不同之處在於它們不可以對段暫存器有操作

乙個字型資料佔兩個單元,所以偏移位址是[0],[2],[4]

棧:一種具有特殊的訪問方式的儲存空間,特殊性在於最後進入這個空間的資料最先出去。

8086cpu提供入棧和出佔指令,最基本的兩個是:push(入)和pop(出)

push 暫存器/段暫存器/記憶體單元

pop 暫存器/段暫存器/記憶體單元

注意ss:sp永遠指向棧頂元素

如果將10000h-1000fh這段空間當作棧,初始狀態棧是空的,此時ss=1000h,sp=0010

棧會越界,會影響到其它的資料,棧越界是危險的。

cpu只知道棧頂位置,不知道棧空間的大小

每一次執行push前都會將sp-2,因此cpu執行push要兩步,而move只要一步

乙個棧的最大值是64kb

用乙個段存放**,用乙個段存放資料,用乙個段當作棧,這些都是我們自己安排的。

資料段存在ds中,**段存在cs中,棧段存在ss中

一段記憶體可以什麼都是,也可以什麼都不是

debug中t命令執行改變ss後下一條指令緊接著執行

debug在其處理d命令的程式段中,必須有將段位址送入段儲存器的**,訪問記憶體指令一般被存在ds中

e a u 命令也可以這樣如上

10月27日培訓日記

再次回顧了 formbean bo actionservlet action manager dao db的呼叫流程式 以使用者登入為例,讓大家必須能自己把這個流程和其中的細節說出來,包括如何判斷使用者登入資訊是否正確的細節。接著詳細為大家講解cookie的有關細節知識 cookie相當於伺服器給客...

10月27日培訓日記

再次回顧了 formbean bo actionservlet action manager dao db的呼叫流程式 以使用者登入為例,讓大家必須能自己把這個流程和其中的細節說出來,包括如何判斷使用者登入資訊是否正確的細節。接著詳細為大家講解cookie的有關細節知識 cookie相當於伺服器給客...

2023年1月27日訓練日記

今天寫乙個 優化問題 2141 第n個智慧型數 乙個正整數如果能表示成兩個正整數的平方差,則稱這個數為乙個 智慧型數 比如 16 就等於 5的平方減去 3 的平方,所以 16 就是乙個智慧型數,從 1 開始的自然數列中,將 智慧型數 從小到大編號為 1,2,3,n。現輸入乙個正整數 n,輸出第 n ...