假設 SP 60H、ACC 30H、B 70H,執行以下命令

發布 汽車 2024-06-23
4個回答
  1. 匿名使用者2024-01-29

    2-1 設 a=0,執行以下兩個命令後,a 的內容是否相同是合理的。

    movc a,@a+dptr

    movx a,@dptr

    答:A的內容不可能相同,因為MOVC定址的是程式儲存器,而MOVX是資料儲存器,兩者定址的儲存器不同,所以得到的源運算元當然不可能相同(如果相同,幾率小於100萬)。

    2-2 指示如何在以下每個命令中定址運算元。

    指令 目標運算元的定址 源運算元的定址add a,40h 暫存器定址 直接定址。

    推送 acc 暫存器定址。

    MOV B,20H 暫存器定址 直接定址。

    ANL P1,現在有 35H 暫存器定址位址。

    MOV @r1,PSW 暫存器間接定址暫存器定址。

    MOVC A,@a+DPTR 暫存器定址基址加上可變位址定址。

    MOVX @dptr,暫存器間接定址暫存器定址。

    2-4 假設累加器 A 的內容為 30 小時,執行以下命令:

    1000h: movc a,@a+pc

    ,將程式儲存器 (1031) 單元的內容傳送到累加器 A。

    老闆,你的話題太多了,我忘不了,能給你弄這麼多積分,實在不容易。

  2. 匿名使用者2024-01-28

    設sp=32h,片上RAM的30H和32H的單元內容分別為20H、23H和01H執行以下命令後,堆疊指標 sp=? dph=? dpl=? a=?

    pop dph (32h) -dph, sp - 1 --sp,結果為:dph = 01h, sp = 31h。

    pop dpl (31h) -dpl, sp - 1 --sp,其結果是:dpl = 23h, sp = 30h。

    pop acc (30h) -acc, sp - 1 --sp,結果為:acc = 20h, sp = 2fh。

    最終:SP = 2FH,DPH = 01H,DPL = 23H,A = 20H。

  3. 匿名使用者2024-01-27

    lcall 是乙個 strip 子程式呼叫指令,所以指令執行後,會給 pc 分配如下位址 1080h,pc=1080h

    1000h(原PC)+3=1003h,所以堆疊的內容是03h,10h,sp的值是66h,因為它被壓了2個位元組

  4. 匿名使用者2024-01-26

    當執行呼叫命令時,返回的入口位址將受到保護,即在 lcall 儲存在 2345h 後為 3456h: sp=。 (sp,72)=23h,(sp-1,71)=48h。 ,gmwowe

相關回答