Thông báo

Collapse
No announcement yet.

gỡ rối giùm em

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • gỡ rối giùm em

    các cao thủ chỉ em bug trong đoạn ct này với
    [CODE=asm]
    ORG 0H
    RESET: MOV R0,#00H
    LOOP: CLR C
    MOV P0,#00H
    MOV A,R0
    ADD A,R0
    JBC PSW.2,OVERFLOW
    INC R0
    CALL DELAY
    CJNE R0,#0FFH,RESET
    OVERFLOW: MOV P0,#01H
    SJMP LOOP
    ORG 100H
    DELAY: PUSH 0
    MOV R0,#0FFH
    HALT1: PUSH 0
    MOV P0,#0FFH
    HALT2: DJNZ R0,HALT2
    POP 0
    DJNZ R0,HALT1
    POP 0
    RET
    END
    [/CODE]
    em muốn thực hiện cộng vào thanh ghi A cho đến khi nào nó lớn hơn 255 thì đặt p0.1 lên cao, mô phỏng thử bằng isis chả thấy nó lên

  • #2
    ORG 0H
    RESET: MOV R0,#00H
    LOOP: CLR C
    MOV P0,#00H
    MOV A,R0
    ADD A,R0
    JBC PSW.2,OVERFLOW
    INC R0
    CALL DELAY
    CJNE R0,#0FFH,RESET
    OVERFLOW: MOV P0,#01H
    SJMP LOOP
    Mỗi lần nhảy về nhãn RESET lại mov R0,#0 rồi thì em cộng đến bao giờ cho được 255?
    Bản thân thanh ghi A cũng không lưu giá trị, mỗi lần nhảy về nhãn lại được load lại giá trị của R0 (lúc đó đã bị nạp giá trị 0) thì chẳng còn ý nghĩa gì nữa.
    Tôi nghĩ em nên học cách lập thuật toán trước, sau đó học viết code thể hiện thuật toán sau. Như vậy thì đỡ cho em rất nhiều thời gian, và đúng bài bản.

    Thân mến,
    blackmoon.

    Comment

    Về tác giả

    Collapse

    AnhDung88 Tìm hiểu thêm về AnhDung88

    Bài viết mới nhất

    Collapse

    Đang tải...
    X