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

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • delta21
    Thành viên tích cực
    • Oct 2009
    • 114

    #1

    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 ạ?)
  • KnowMore
    Thành viên tích cực
    • Jun 2008
    • 786

    #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...