543 21 Cú pháp cụa cụa leơnh RCR như sau :

Một phần của tài liệu đề cương bài giảng về hợp ngữ (Trang 60 - 62)

Cú pháp cụa cụa leơnh RCR như sau :

RCR destination,1 RCR destination,CL

Ví dú : Giạ sử DH = 8Ah ,CF=1 và CL=3 . Tìm giá trị cụa DH,CF sau khi leơnh

RCR DH,CL được thực hieơn Giại :

CF DH

Giá trị ban đaău 1 10001010 Sau khi quay 1 laăn 0 11000101 Sau khi quay 2 laăn 1 01100010 Sau khi quay 3 laăn 0 10110001=B1H

Aûnh hưởng cụa leơnh quay leđn các cờ

SF,PF và ZF phạn ạnh kêt quạ CF-bit cuôi cùng được dịch ra

OF=1 nêu kêt qụa thay đoơi dâu vào laăn quay cuôi cùng

Ưùng dúng : Đạo ngược các bit tređn moơt byte hoaịc 1 từ .Ví dú AL =10101111 thì sau khi đạo ngược AL=11110101 .

Có theơ laịp 8 laăn cođng vieơc sau :Dùng SHL đeơ dịch bit MSB ra CF , Sau đó dùng RCR đeơ đưa nó vào BL .

Đốïn mã đeơ làm vieơc này như sau : MOV CX,8 ;sô laăn laịp REVERSE :

SHL AL,1 ; dịch MSB ra CF

RCR BL,1 ; đưa CF ( MSB) vào BL LOOP REVERSE

MOV AL,BL ; AL chứa các bit đã đạo ngược

Chương 4 : Các leơnh dịch và quay 54 Các leơnh dịch và quay thường được sử dúng trong các hốt đoơng xuât nhaơp sô nhị phađn và sô hex.

4.4.1 Nhaơp sô nhị phađn

Giạ sử caăn nhaơp moơt sô nhị phađn từ bàn phím , kêt thúc là phím CR . Sô nhị phađn là moơt chuoêi các bit 0 và 1 . Moêi moơt ký tự gõ vào phại được biên đoơi thành moơt bit giá trị ( 0 hoaịc 1) roăi tích luỹ chúng trong 1 thanh ghi . Thuaơt toán sau đađy sẽ đĩc moơt sô nhị phađn từ bàn phím và cât nó tređn thanh ghi BX .

Clear BX

input a character ( ‘0’ or ‘1’) WHILE character<> CR DO

convert character to binary value left shift BX

insert value into LSB of BX input a character

END_WHILE

Đốn mã thực hieơn thuaơt toán tređn như sau : XOR BX,BX ; Xoá BX MOV AH,1 ; hàm đĩc 1 ký tự INT 21h ; ký tự tređn AL WHILE_: CMP AL,0DH ; ký tự là CR? JE END_WHILE ; đúng , kêt thúc AND AL,0Fh ; convert to binary value SHL BX,1 ; dịch trái BX 1 bit

OR BL,AL ; đaịt giá trị vào BX INT 21h ; đĩc ký tự tiêp theo

JMP WHILE_ ; laịp END_WHILE:

4.4.2 Xuât sô nhị phađn

Giạ sử caăn xuât sô nhị phađn tređn BX ( 16 bit) . Thuaơt toán có theơ viêt như sau

FOR 16 times DO

rotate left BX ( put MSB into CF) IF CF=1

Chương 4 : Các leơnh dịch và quay 55 then output ‘1’ else output ‘0’ END_IF END_FOR

Đốn mã đeơ xuât sô nhị phađn có theơ xem như bài taơp .

4.4.3 Nhaơp sô HEX

Nhaơp sô hex bao goăm các sô từ 0 đên 9 và các ký tự A đên F . Kêt qụa chứa trong BX .

Một phần của tài liệu đề cương bài giảng về hợp ngữ (Trang 60 - 62)

Tải bản đầy đủ (PDF)

(108 trang)