Thông báo

Collapse
No announcement yet.

có vấn đề nhỏ khi tách lấy một nhóm bit?

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

  • có vấn đề nhỏ khi tách lấy một nhóm bit?

    giờ em cần lấy 6 bit cao ở PORTB.có hai cách viết như thế này


    temp = PORTB & 0b11111100;



    temp = PORTB >>2;


    mọi người cho em hỏi cách viết nào tối ưu cho vdk (sinh mã ít nhất ạ?)

  • #2
    Cách sinh mã thế nào còn phụ thuộc vào mcu (những lệnh hợp ngữ mà mcu hỗ trợ).
    (trường hợp này hình như như nhau)

    temp = PORTB & 0b11111100;
    0b11111100 được copy vào W
    portB & W lưu vào W
    copy W vào temp

    (3 lệnh hợp ngữ)

    temp = PORTB >>2;
    Clear Carry
    Rotate Right portB through Carry lưu vào W
    Clear Carry
    Rotate Right W through Carry
    lưu vào W
    copy W vào temp
    (5 lệnh hợp ngữ)

    Vấn đề chọn lệnh nào còn phụ thuộc bạn xử lý gì sau lệnh.

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X