Bài giảng Kiến trúc máy tính và hợp ngữ - Bài 3: Lệnh nhảy – Lệnh lặp

(Sơ lược vthanh ghi c)  
Bài 3:  
z Thanh ghi c(Flag)  
Lnh nhy – Lnh lp  
z Ghi nhn các thông tin điu khin, trng thái ca  
CPU và kết quthc hin lnh sau cùng.  
z Mi bit gi là 1 c(có tr1: set, hoc 0: clear)  
z Cờ điu khin: IF, DF, TF  
z Ctrng thái:  
z CF (Carry flag) có tr1 khi có nhhoc mượn tbit MSB  
z ZF (Zero flag) có tr1 khi kết qulà 0  
z SF (Sign flag) có tr1 khi kết qulà âm (bit MSB là 1)  
z Các lnh tính toán đều làm thay đổi c.  
(Xem thêm chương 2)  
Lnh nhy (Jump)  
z
Định nghĩa:  
z (Các thanh ghi sp xếp theo chc năng)  
z
Thay đổi trt tthc hin các lnh (thay vì tun t)  
Tùy thuc vào tình hung, phn ánh trcác cờ  
z
z
Các lnh làm thay đổi cờ  
z
Các lnh tính toán sthay đổi trcác cờ  
Lnh CMP Đích, Ngun (Compare: So sánh)  
z
ƒ
ƒ
ƒ
ƒ
ƒ
Tương tlnh SUB nhưng không làm thay đổi trị đích  
Cũng thay làm thay đổi cờ  
Nếu Đích = Ngun, ZF = 1  
Nếu Đích > Ngun, SF = 0, CF = 0  
Nếu Đích < Ngun, SF = 1, CF = 1  
ƒ
VD: MOV AL, 10  
CMP AL, 90h ; SF = 1, CF = 1  
Nhp 1 ký t. Nếu là ‘S’ hoc ‘s’ thì chào Bui sáng  
Nếu khác thì chào Bui chiu  
;Hien thi cau hoi  
;Nhap tra loi  
MOV  
INT  
AH,1  
21H  
;Kiem tra tra loi la 'S' hay 's'  
;Neu dung nhay den LaSang  
z Các lnh nhy:  
(cu trúc IF ... THEN ...)  
(đi sau các lnh làm thay đổi c)  
CMP  
AL,'s'  
Y
AL = ‘s’  
JE LaSang  
CMP  
AL,'S'  
JE LaSang  
;Tra loi khac 'S' hay 's'  
;Lay dia chi cau chao buoi chieu va hien thi  
z Lnh nhy không điu kin:  
JMP Nhãn_đích  
Gán Chào Chiu  
z Lnh nhy theo điu kin  
Jxx Nhãn_đích  
MOV  
JMP Hienthi  
;Tra loi la 'S' hay 's'  
;Lay dia chi cau chao buoi sang va hien thi  
LaSang:  
MOV  
;Hien thi cau chao  
Hienthi:  
MOV  
INT  
DX,OFFSET Chieu  
ƒ
ƒ
ƒ
ƒ
(tùy thuc tr/thái th/ghi c) nếu tha nhy đến Nhãn.  
Nhy theo kết qukhông du: JB, JA  
Nhy theo kết qucó du: JL, LG  
Nhy theo giá trc:  
LàSáng:  
Gán Chào Sáng  
DX,OFFSET Sang  
JE (nhy nếu bng: Equal), JZ (nhy nếu ZF=1) : ZF=1,  
AH,9 ; hin thS hoc C, chung INT 21h  
21H  
HinTh:  
Hin thSáng  
z Xem VD (trang 56)  
Chú ý: không có cu trúc IF ... THEN ... ELSE  
;Ve DOS  
1
Lnh lp (Loop)  
ƒ
Vòng lp thường kết thúc bng 1 lnh nhy  
z
VD trang 58  
...  
Các lnh nhy lp:  
z LOOP Nhãn  
...  
.CODE  
.CODE  
MOV AH, 2  
MOV CX, 256  
MOV DL, 0  
PrintLoop:  
INT 21H  
INC DL  
MOV AH, 2  
MOV CX, 256  
MOV DL, 0  
PrintLoop:  
INT 21H  
ƒ
ƒ
ƒ
Biến đếm ca vòng lp slà CX  
Phi khi gán cho CX (sln lp)  
I = 256  
....  
Sgim CX và kim tra nếu CX<>0 thì quay li Nhãn  
(xem VD trang 58)  
ƒ
Nếu mun to 2 vòng lp lng nhau, dùng lnh PUSH / POP  
(xem VD trang 58)  
INC DL  
DEC CX  
JNZ PrintLoop  
...  
LOOP PrintLoop  
I = I – 1  
I <> 0  
Y
...  
ƒ
ƒ
LOOPE / LOOPZ  
Tiếp tc lp khi CX <> 0 và ZF = 1  
(Hoc kết thúc lp khi ....  
LOOPNE / LOOPNZ  
Tiếp tc lp khi CX <> 0 và ZF = 0  
(Hoc kết thúc lp khi ....  
MOV CX, 5  
Ngoai:  
)
)
PUSH CX  
...  
MOV CX, 10  
VD: Nhp 1 chui ký tdài ti đa 128 hoc kết thúc bng Enter  
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
.CODE  
MOV CX, 128  
KeyLoop:  
MOV AH, 1  
Trong:  
...  
LOOP Trong  
POP CX  
INT 21H  
CMP AL, 0Dh ; Ký tva bm là Enter  
LOOPNE KeyLoop  
LOOP Ngoai  
(Push / Pop: đưa vào / ly ra tStack)  
Nhp 1 ký t. Nếu là s: t0 đến 9 thì dng  
Nếu khác thì Báo nhp li, ti đa 3 ln  
;Nhap so lan lap vao CX  
BatDau:  
Nhp 1 ký tự  
(vào AL)  
MOV  
CX,4  
Bài tp  
;Vong lap nhap ky tu va kiem tra  
BatDau:  
;Nhap 1 ky tu  
MOV AH,1  
T
AL < ‘0’  
z Lý thuyết: 3.1 đến 3.4 (tho lun nhóm)  
INT 21H  
;Kiem tra ky tu nhap co phai la so?  
CMP AL,'0'  
JB NhapLai  
CMP AL,'9'  
JA NhapLai  
z Thc hành: 3.5 đến 3.13 (kim tra thc hành)  
(Hướng dn: Mã ASCII  
T
AL > ‘9’  
‘0’ < AL < ‘9’  
8
: quay lui, back space  
JMP KetThuc  
NhapLai:  
10 : xung dòng, line feed, new line)  
27 : phím ESC)  
NhapLai:  
Thông báo SAI  
MOV  
MOV  
INT  
AH,9  
DX,OFFSET BaoSai1  
21H  
T
LOOP  
MOV  
MOV  
INT  
BatDau  
AH,9  
DX,OFFSET BaoSai2  
21H  
CX <> 0  
Thông báo dng nhp  
KetThuc:  
...  
KetThuc:......  
2
pdf 2 trang yennguyen 09/04/2022 2780
Bạn đang xem tài liệu "Bài giảng Kiến trúc máy tính và hợp ngữ - Bài 3: Lệnh nhảy – Lệnh lặp", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_va_hop_ngu_bai_3_lenh_nhay_lenh.pdf