Bài giảng Kiến trúc máy tính và hợp ngữ: Bài 3 - Huỳnh Tổ Hạp
lượt xem 5
download
Bài giảng "Kiến trúc máy tính và hợp ngữ - Bài 3: Lệnh nhảy và lệnh lặp" cung cấp cho người học các kiến thức: Sơ lược về thanh ghi cờ, lệnh nhảy, lệnh lặp. Đây là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kiến trúc máy tính và hợp ngữ: Bài 3 - Huỳnh Tổ Hạp
- (Sơ lược về thanh ghi cờ) Bài 3: z Thanh ghi cờ (Flag) Lệnh nhảy – Lệnh lặp z Ghi nhận các thông tin điều khiển, trạng thái của CPU và kết quả thực hiện lệnh sau cùng. z Mỗi bit gọi là 1 cờ (có trị 1: set, hoặc 0: clear) z Cờ điều khiển: IF, DF, TF z Cờ trạng thái: z CF (Carry flag) có trị 1 khi có nhớ hoặc mượn từ bit MSB z ZF (Zero flag) có trị 1 khi kết quả là 0 z SF (Sign flag) có trị 1 khi kết quả là âm (bit MSB là 1) z Các lệnh tính toán đều làm thay đổi cờ. (Xem thêm chương 2) Lệnh nhảy (Jump) z (Các thanh ghi sắp xếp theo chức năng) z Định nghĩa: z Thay đổi trật tự thực hiện các lệnh (thay vì tuần tự) z Tùy thuộc vào tình huống, phản ánh ở trị các cờ z Các lệnh làm thay đổi cờ z Các lệnh tính toán sẽ thay đổi trị các cờ z Lệnh CMP Đích, Nguồn (Compare: So sánh) Tương tự lệnh SUB nhưng không làm thay đổi trị đích Cũng thay làm thay đổi cờ Nếu Đích = Nguồn, ZF = 1 Nếu Đích > Nguồn, SF = 0, CF = 0 Nếu Đích < Nguồn, SF = 1, CF = 1 VD: MOV AL, 10 CMP AL, 90h ; SF = 1, CF = 1 Nhập 1 ký tự. Nếu là ‘S’ hoặc ‘s’ thì chào Buổi sáng Nếu khác thì chào Buổi chiều ;Hien thi cau hoi ;Nhap tra loi MOV AH,1 INT 21H ;Kiem tra tra loi la 'S' hay 's' z Các lệnh nhảy: ;Neu dung nhay den LaSang (cấu trúc IF ... THEN ...) CMP AL,'s' Y AL = ‘s’ JE LaSang (đi sau các lệnh làm thay đổi cờ) CMP AL,'S' z Lệnh nhảy không điều kiện: JE LaSang ;Tra loi khac 'S' hay 's' JMP Nhãn_đích ;Lay dia chi cau chao buoi chieu va hien thi Gán Chào Chiều z Lệnh nhảy theo điều kiện MOV DX,OFFSET Chieu Jxx Nhãn_đích JMP Hienthi ;Tra loi la 'S' hay 's' (tùy thuộc tr/thái th/ghi cờ) nếu thỏa nhảy đến Nhãn. ;Lay dia chi cau chao buoi sang va hien thi Nhảy theo kết quả không dấu: JB, JA LaSang: LàSáng: Nhảy theo kết quả có dấu: JL, LG MOV DX,OFFSET Sang Gán Chào Sáng Nhảy theo giá trị cờ: ;Hien thi cau chao Hienthi: JE (nhảy nếu bằng: Equal), JZ (nhảy nếu ZF=1) : ZF=1, MOV AH,9 ; hiển thị S hoặc C, chung INT 21h HiểnThị: z Xem VD (trang 56) INT 21H Hiển thị Sáng Chú ý: không có cấu trúc IF ... THEN ... ELSE ;Ve DOS 1
- Lệnh lặp (Loop) Vòng lặp thường kết thúc bằng 1 lệnh nhảy z VD trang 58 Các lệnh nhảy lặp: ... ... z LOOP Nhãn .CODE .CODE Biến đếm của vòng lặp sẽ là CX MOV AH, 2 MOV AH, 2 Phải khởi gán cho CX (số lần lặp) I = 256 MOV CX, 256 MOV CX, 256 Sẽ giảm CX và kiểm tra nếu CX0 thì quay lại Nhãn MOV DL, 0 MOV DL, 0 (xem VD trang 58) PrintLoop: PrintLoop: Nếu muốn tạo 2 vòng lặp lồng nhau, dùng lệnh PUSH / POP .... INT 21H INT 21H (xem VD trang 58) INC DL INC DL I=I–1 DEC CX LOOP PrintLoop JNZ PrintLoop Y I 0 ... ... MOV CX, 5 LOOPE / LOOPZ Tiếp tục lặp khi CX 0 và ZF = 1 Ngoai: (Hoặc kết thúc lặp khi .... ) PUSH CX LOOPNE / LOOPNZ Tiếp tục lặp khi CX 0 và ZF = 0 ... (Hoặc kết thúc lặp khi .... ) MOV CX, 10 VD: Nhập 1 chuỗi ký tự dài tối đa 128 hoặc kết thúc bằng Enter Trong: .CODE MOV CX, 128 ... KeyLoop: LOOP Trong MOV AH, 1 POP CX INT 21H LOOP Ngoai CMP AL, 0Dh ; Ký tự vừa bấm là Enter LOOPNE KeyLoop (Push / Pop: đưa vào / lấy ra từ Stack) Nhập 1 ký tự. Nếu là số: từ 0 đến 9 thì dừng Nếu khác thì Báo nhập lại, tối đa 3 lần BatDau: ;Nhap so lan lap vao CX Nhập 1 ký tự (vào AL) MOV CX,4 ;Vong lap nhap ky tu va kiem tra Bài tập BatDau: T ;Nhap 1 ky tu AL < ‘0’ MOV AH,1 z Lý thuyết: 3.1 đến 3.4 (thảo luận nhóm) INT 21H T ;Kiem tra ky tu nhap co phai la so? z Thực hành: 3.5 đến 3.13 (kiểm tra thực hành) AL > ‘9’ CMP AL,'0' JB NhapLai (Hướng dẫn: Mã ASCII CMP AL,'9' ‘0’ < AL < ‘9’ JA NhapLai 8 : quay lui, back space JMP KetThuc 10 : xuống dòng, line feed, new line) NhapLai: NhapLai: Thông báo SAI MOV AH,9 27 : phím ESC) MOV DX,OFFSET BaoSai1 INT 21H T LOOP BatDau CX 0 MOV AH,9 MOV DX,OFFSET BaoSai2 Thông báo dừng nhập INT 21H KetThuc: ... KetThuc: KetThuc: ... ... 2
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kiến trúc máy tính - Nguyễn Kim Khánh
136 p | 553 | 84
-
Bài giảng Kiến trúc máy tính: Chương 1 - TS. Nguyễn Qúy Sỹ
46 p | 272 | 52
-
Bài giảng Kiến trúc máy tính: Chương 3 - Cấu trúc phần cứng của máy tính
12 p | 269 | 48
-
Bài giảng Kiến trúc máy tính (238tr)
238 p | 149 | 23
-
Bài giảng Kiến trúc máy tính: Chương 1 - Phạm Hoàng Sơn
70 p | 138 | 20
-
Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh
51 p | 111 | 15
-
Bài giảng Kiến trúc máy tính - Chương 4: Giới thiệu chung - Nguyễn Kim Khánh
136 p | 116 | 14
-
Bài giảng Kiến trúc máy tính - Nguyễn Duy Phúc
101 p | 131 | 12
-
Bài giảng Kiến trúc máy tính: Chương 1 - ThS. Lê Văn Hùng
17 p | 147 | 11
-
Bài giảng Kiến trúc máy tính - Chương 1: Tổng quan về kiến trúc máy tính
40 p | 32 | 10
-
Bài giảng Kiến trúc máy tính: Chương 7 - ThS. Lê Văn Hùng
18 p | 122 | 5
-
Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu
51 p | 78 | 3
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 3 - Vũ Thị Thúy Hà
89 p | 12 | 3
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 1 - Vũ Thị Thúy Hà
83 p | 10 | 2
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 2 - Vũ Thị Thúy Hà
106 p | 4 | 2
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 4 - Vũ Thị Thúy Hà
64 p | 5 | 2
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 5 - Vũ Thị Thúy Hà
20 p | 6 | 2
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 6 - Vũ Thị Thúy Hà
74 p | 15 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn