Có hướng dẫn lắp ráp nào để chúng tôi trực tiếp "đặt" hoặc "xóa" cờ "OF" và "TF" trong đăng ký cờ 80 bit 16 bit của Intel không? Nếu không, chúng ta nên sử dụng mã giả nào?Hướng dẫn lắp ráp, thanh toán bù trừ cờ & TF
Trả lời
http://en.wikipedia.org/wiki/Trap_flag
Các 8086 không có người hướng dẫn trực tiếp thiết lập hoặc thiết lập lại cờ bẫy. Các hoạt động này được thực hiện bằng cách đẩy thanh ghi cờ lên ngăn xếp, thay đổi bit cờ của bẫy thành những gì người lập trình muốn, và sau đó bật thanh ghi cờ trở lại ngăn xếp. Các hướng dẫn để thiết lập các cờ bẫy là:
PUSHF ; Push flags on stack
MOV BP,SP ; Copy SP to BP for use as index
OR WORD PTR[BP+0],0100H ; Set TF flag
POPF ; Restore flag Register
Để thiết lập lại cờ bẫy, chỉ cần thay thế các HOẶC hướng dẫn trong dãy đầu với hướng dẫn:
AND WORD PTR[BP+0],0FEFFH
Để thiết và xóa cờ tràn, bạn có thể làm tương tự, thay thế 0100H
bằng 0800H
và 0FEFFh
với 0F7FFh
.
Hãy nhớ biết TF
làm gì trước khi bạn đặt. Nó là một cái bẫy.
Lý do để thực hiện 'mov bp, sp' và sử dụng * bp * đăng ký khi bạn chỉ có thể thực hiện' hoặc word [sp], 0100h' chỉ sử dụng * sp * register? – golem
vì 8086 đang chạy ở chế độ thực 16 bit, không có cách nào để tạo từ [sp] vì chỉ có thể đăng ký cơ sở trong toán hạng bộ nhớ là BX, BP, SI và DI. – hlide
Bạn đã đọc [Hướng dẫn sử dụng Intel] (http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html) trước khi đặt câu hỏi này chưa? – DCoder
http://en.wikipedia.org/wiki/Trap_flag –
@DCoder bạn đã bao giờ tìm thấy mã giả cho những thứ như vậy trong Hướng dẫn sử dụng của Intel trước khi đăng bình luận chưa? –