首頁>Club>
8
回覆列表
  • 1 # fmotm3347

    SJMP $意味著跳轉到該指令的開頭以開始執行,因此它變為迴圈執行,就地跳轉,通常用於等待中斷。但是本指令也不宜濫用。這是一條死迴圈指令,如果系統的中斷是開放的,那麼SJMP $指令實際上是在等待中斷,當有中斷申請後,CPU 轉至執行中斷服務程式。中斷返回時,仍然返回到這條死迴圈指令,繼續等待中斷,而不是返回到該指令的下一條指令。這是因為執行SJMP $後,PC 仍指向這條指令,中斷的斷點就是 [3] 這條指令的首位元組地址。擴充套件資料1)在51中,與外部儲存器RAM打交道的只可以是A累加器。所有需要送入外部RAM的資料必需要透過A送去,而所有要讀入的外部RAM中的資料也必需透過A讀入。在此我們可以看出內外部RAM的區別了,內部RAM間可以直接進行資料的傳遞,而外部則不行,比如,要將外部RAM中某一單元(設為0100H單元的資料)送入另一個單元(設為0200H單元),也必須先將0100H單元中的內容讀入A,然後再送到0200H單元中去。2)要讀或寫外部的RAM,當然也必須要知道RAM的地址,在後兩條指令中,地址是被直接放在DPTR中的。而前兩條指令,由於Ri(即R0或R1)只是一個8位的暫存器,所以只提供低8位地址。因為有時擴充套件的外部RAM的數量比較少,少於或等於256個,就只需要提供8位地址就夠了。3)使用時應當首先將要讀或寫的地址送入DPTR或Ri中,然後再用讀寫命令。

  • 2 # 使用者8209154827005

    SJMP $意味著跳轉到該指令的開頭以開始執行,因此它變為迴圈執行,就地跳轉,通常用於等待中斷。

    但是本指令也不宜濫用。這是一條死迴圈指令,如果系統的中斷是開放的,那麼SJMP $指令實際上是在等待中斷,當有中斷申請後,CPU 轉至執行中斷服務程式。

    中斷返回時,仍然返回到這條死迴圈指令,繼續等待中斷,而不是返回到該指令的下一條指令。這是因為執行SJMP $後,PC 仍指向這條指令,中斷的斷點就是 [3] 這條指令的首位元組地址。

    擴充套件資料

    1)在51中,與外部儲存器RAM打交道的只可以是A累加器。所有需要送入外部RAM的資料必需要透過A送去,而所有要讀入的外部RAM中的資料也必需透過A讀入。

    在此我們可以看出內外部RAM的區別了,內部RAM間可以直接進行資料的傳遞,而外部則不行,比如,要將外部RAM中某一單元(設為0100H單元的資料)送入另一個單元(設為0200H單元),也必須先將0100H單元中的內容讀入A,然後再送到0200H單元中去。

    2)要讀或寫外部的RAM,當然也必須要知道RAM的地址,在後兩條指令中,地址是被直接放在DPTR中的。而前兩條指令,由於Ri(即R0或R1)只是一個8位的暫存器,所以只提供低8位地址。因為有時擴充套件的外部RAM的數量比較少,少於或等於256個,就只需要提供8位地址就夠了。

    3)使用時應當首先將要讀或寫的地址送入DPTR或Ri中,然後再用讀寫命令。

  • 中秋節和大豐收的關聯?
  • 華為榮耀暢玩忘了鎖屏密碼,不清除資料要怎麼辦?