51 MCU組合語言 尋求幫助 兩個問題

發布 科技 2024-04-07
10個回答
  1. 匿名使用者2024-01-27

    org 0000h

    sjmp start

    org 000bh

    sjmp t0_int

    start:

    mov tmod, #01h

    MOV TH0, (65536-1000) 256MOV TL0, (65536-1000) MOV 256setB TR0

    setb et0

    setb ea

    here:sjmp here

    t0_int:

    mov th0, #

    mov tl0, #(65536-1000) mod 256cpl

    retiend

    U4 樓層卷位址:0010 0000 0000 0000 0011 1111 1111 1111

    org 0000h

    mov r0, #00h

    mov r2, #

    loop:mov p2, #40h

    movx a, @r0

    mov p2, #20h

    movx @r0, a

    inc r0

    djnz r2, loopend

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

    只有 R0 和 R1 可以儲存資料和位址,@r7間接位址無效; movx a,r0 錯誤:傳入的外部資料,必須間接定址 movx a,@r0; Movx B,@dptr錯誤:只有累加器 A 可以從外部資料儲存接收資料,B 不能; MOVC A,@r0錯了:

    運算元位址格式不符合要求; 可改為MOVC @a+PC; MOVC A,@dptr錯誤:運算元位址格式不符合要求,可改為MOVC @a+DPTR; MOVC B,@a DPTR 錯誤:B 格式錯誤,@a DPTR 格式錯誤; xch b,r0 錯誤:

    暫存器B不能與RN交換資料,可以改為XCH A,R0; ORL 16H,R1 錯誤:邏輯運算必須使用累加器 A,可以改為 ORL A,R1; 位址 a,2050h 錯誤:位址 2050h 超出了 51 微控制器晶元儲存器的範圍。

    2.選擇對或錯。 滿意。

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

    答:a = 1fh = 0001 1111b

    30h) =83h =1000 0011b (anla =03h =0000 0011b 偶數為1,p=0 業主的回答是正確的。

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

    呵呵,樓上那傢伙解釋得不夠清楚,我來幫你。

    1 tick_cnt equ 20h ;定義乙個變數 tick cnt 這個變數的位址是 20h

    什麼是T0乘以? 它的真正含義是將tick cnt用作軟體計時計數器。

    例如,如果 t0 的計時時間為 50 毫秒,那麼可以設定 tick cnt = 20 的初始值,當計時器達到 50 毫秒時,軟體會將 tick cnt 減去 1,當減小到 0 時,表示 1 秒的時間到了。

    該功能是計時 1 秒。 當然,tick cnt 的初始值是 20,它是指定定時器計時器的 50 毫秒的倍數。

    2 second_bcd equ 21h ;時間記錄。

    它是關於定義乙個可變的第二個 bcd 來跟蹤時間,例如,每 1 秒。

    將 1 新增到第二個 BCD 內容,則第二個 BCD 是用於記錄時間的秒數。

  5. 匿名使用者2024-01-23

    equ 是乙個偽指令,你理解為“=”,這意味著在下面的程式中,暫存器 20h 由變數 tick cnt 表示,暫存器 21h 由變數 second bcd 表示。

    如果你熟悉C語言,它相當於:

    tick_cnt = 20h

    second_bcd =21h

    哦,就是變數tick cnt的位址位是20h,變數second bcd的位址是21h

  6. 匿名使用者2024-01-22

    這只是乙個定義,用 tick cnt 替換 20h,用第二個 bcd 替換 21h。

  7. 匿名使用者2024-01-21

    1.(40h)=44h;

    2.(r0)= 36h (r2)= e2h

    3. (a)= 10h (b)=01h

    4. (41h)= 03h (42h)= 02h

    5.似乎缺少(41h)的已知條件,需要確認(40h)=56之後是否有h; (40h) = 56 (41h) = (42h) = 56 (43h)=56 迴圈右移。

    5.(30h) =78 (31h) =04h (32h )=00h (33h)=ffh

    暫存器定址 2)直接定址 3) 位定址 4) 即時定址 5) 變數定址 間接定址 6) 暫存器間接定址。

  8. 匿名使用者2024-01-20

    eapsen

    你可以在書上找到這個,你是怎麼學會的?

  9. 匿名使用者2024-01-19

    三。 手指錯了。

    mov a,1000h錯誤:位址1000h超出了51微控制器晶元儲存器的範圍;

    movx a,r0 錯誤:傳入的外部資料,必須間接定址 movx a,@r0;

    Movx B,@dptr錯誤:只有累加器 A 可以從外部資料儲存接收資料,B 不能;

    MOVC B,@a DPTR 錯誤:B 格式錯誤,@a DPTR 格式錯誤;

    XCH B,R0 錯誤:暫存器 B 無法與 RN 交換資料,可以更改為 XCH A,R0;

    ORL 16H,R1 錯誤:邏輯運算必須使用累加器 A,可以改為 ORL A,R1;

    位址 a,2050h 錯誤:位址 2050h 超出了 51 微控制器晶元儲存器的範圍。

    2.選擇對或錯。

  10. 匿名使用者2024-01-18

    真的是“高”分,你用文字打出題目,這一點還是**,誰都難問。

相關回答
5個回答2024-04-07

組合語言,好的程式。

4個回答2024-04-07

AT89C52 C 系列是早期產品。 沒有了程式設計和看門狗,為了區別於早期產品,將新產品改為具有看門狗和ISP功能的AT89S52,ISP就是程式設計的意思。早期是晶格的專利技術,現在被大量使用。 >>>More

19個回答2024-04-07

原理:只是執行一些所謂的“無意義指令”,比如縮放或執行乙個int自加法,簡單來說,就像高中數學中的“乘法原理”一樣,很容易快速增加上面提到的“無意義指令”的數量。 >>>More

7個回答2024-04-07

mov r0, #30h ;儲存平方值的位址。

mov r1, #0 ;首先找到 0 的平方。 >>>More

6個回答2024-04-07

還行。 在 51 微控制器的嵌入式 C 語言中,還支援指標。 >>>More