1. Trang chủ
  2. » Công Nghệ Thông Tin

SLIDE - KIẾN TRÚC MÁY TÍNH - CÁC LỆNH CƠ BẢN

80 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc chương trình Một số lệnh thường dùng Nhập/xuất dữ liệu Cách chạy chương trình Assembly Các lệnh nhảy, cấu trúc rẽ nhánh và lặp Các lệnh logic, dịch, và quay Ngăn xếp và thủ tục Mảng và các chế độ địa chỉ.

KIẾN TRÚC MÁY TÍNH Giảng viên: Ths Phạm Thanh Bình Bộ mơn Kỹ thuật máy tính & mạng http://vn.myblog.yahoo.com/CNTT-wru http://ktmt.wru.googlepages.com Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - Bài 2.6 – Các lệnh Assembly Cấu trúc chương trình Một số lệnh thường dùng Nhập/xuất liệu Cách chạy chương trình Assembly Các lệnh nhảy, cấu trúc rẽ nhánh lặp Các lệnh logic, dịch, quay Ngăn xếp thủ tục Mảng chế độ địa Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 2.6.1 Cấu trúc chương trình TITLE VI DU MODEL SMALL STACK 100H DATA A DB B DB C DB ? CODE MAIN PROC MOV AX, @DATA MOV DS, AX MOV AL, A ADD AL, B MOV C, AL MOV AX, 4C00H INT 21H MAIN ENDP END MAIN Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - Giải thích: Phần tên Tên chương trình viết sau từ khố TITLE đầu chương trình Tên chứa dấu cách kí tự đặc biệt khác Thơng thường phần tên cho ta biết mục đích, nhiệm vụ nội dung tóm tắt chương trình Ví dụ: TITLE VI DU Phần khai báo Trong hợp ngữ có nhiều nội dung cần phải khái báo kiểu nhớ, ngăn xếp, biến, Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - Khai báo kiểu nhớ Kiểu nhớ viết sau từ MODEL Kiểu nhớ quy định kích thước đoạn mã liệu chương trình Trong ví dụ trên, kiểu nhớ SMALL, nghĩa kiểu nhớ nhỏ, mã lệnh nằm đoạn nhớ, liệu nằm đoạn nhớ Ngồi kiểu SMALL cịn có nhiều kiểu nhớ khác Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - Một số kiểu nhớ MEDIUM Mã lệnh chiếm nhiều đoạn Dữ liệu đoạn COMPACT Mã lệnh đoạn Dữ liệu chiếm nhiều đoạn LARGE Mã lệnh chiếm nhiều đoạn Dữ liệu chiếm nhiều đoạn Khơng có mảng lớn 64 KB HUGE Mã lệnh chiếm nhiều đoạn Dữ liệu chiếm nhiều đoạn Các mảng lớn 64 KB Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - Khai báo kích thước ngăn xếp Kích thước ngăn xếp viết sau từ STACK Ví dụ: STACK 100H Khi kích thước vùng nhớ dùng làm ngăn xếp 100H Bytes Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - Khai báo liệu Khai báo liệu viết sau từ DATA Các biến chương trình khai báo phần Ví dụ 1: A DB Trong đó: A tên biến, DB kiểu liệu (biến kiểu DB có kích thước byte), giá trị ban đầu biến Ví dụ 2: B DW ? Trong ví dụ này, biến B có kiểu DW (1 Word) khơng có giá trị khởi tạo Khai báo hằng: Ví dụ: H EQU 2Bh Hằng H nhận giá trị 2Bh Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - Quy tắc đặt tên (Biến, hằng, nhãn, thủ tục): Tên có chiều dài tối đa 31 kí tự Có thể chứa chữ cái, chữ số kí tự đặc biệt (? @ _ $ %) Không bắt đầu số Nếu dùng dấu chấm phải đứng Tên không chứa dấu cách Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - Phần mã lệnh Phần bao gồm thủ tục viết sau từ CODE Trong số thủ tục phải chọn thủ tục làm chương trình chính, tên thủ tục viết sau từ END cuối chương trình Tên chương trình thường đặt MAIN, chọn tên khác Cấu trúc thủ tục: PROC Lệnh Lệnh Lệnh ENDP Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 10 Ví dụ: Xét đoạn lệnh sau: MOV AH, ;Nhập kí tự INT 21h CMP AL, ‘Z’ ;So sánh kí tự vừa nhập với ‘Z’ JA KetThuc ;Nếu AL > ‘Z’ nhảy tới nhãn KetThuc ;Các lệnh khác KetThuc: MOV AH, 4Ch INT 21h Đoạn lệnh thực khoảng cách lệnh JA vị trí đặt nhãn KetThuc khơng q 127 byte Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 66 Sử dụng phương pháp “nhảy hai bước” : MOV AH, INT 21h CMP AL, ‘Z’ JA NhanTrungGian JMP TiepTuc NhanTrungGian: JMP KetThuc TiepTuc: KetThuc: MOV AH, 4Ch INT 21h ;Nhập kí tự ;So sánh kí tự vừa nhập với ‘Z’ ;Nếu AL > ‘Z’ nhảy tới NhanTrungGian ;Các lệnh khác Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 67 Cấu trúc rẽ nhánh IF Đối với cấu trúc rẽ nhánh vị trí nhãn đứng sau lệnh nhảy: Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 68 Ví dụ: Nhập kí tự từ bàn phím, kí tự in thường đổi sang in hoa Hiện kí tự hình Thuật tốn sau: + Nhập kí tự KT + IF (KT ≤ ‘z’) AND (KT ≥ ‘a’) THEN Đổi KT sang in hoa + Hiện KT hình Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 69 TITLE DOI KI TU MODEL SMALL STACK 100H CODE MAIN PROC MOV AH, ;Nhập kí tự INT 21h CMP AL, ’z’ JA HienChu ;Nếu AL > ’z’ kí tự hình CMP AL, ’a’ JB HienChu ;Nếu AL < ’a’ kí tự hình SUB AL, 20h ;Đổi kí tự sang in hoa HienChu: MOV AH, ;Chức số 2: Hiện kí tự MOV DL, AL INT 21h MOV AH, 4Ch ;Kết thúc INT 21h MAIN ENDP END MAIN Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 70 Cấu trúc lặp Lặp khơng biết trước số lần lặp (While, Repeat) Lặp với số lần lặp biết trước (For) Lệnh lặp LOOP Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 71 Đối với cấu trúc lặp nói chung vị trí nhãn đứng trước lệnh nhảy: Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 72 Lặp khơng biết trước số lần lặp (While, Repeat) Ví dụ: Nhập kí tự số từ bàn phím (‘0’, ‘1’, , ‘9’), đổi sang số thập phân tương ứng Nhân đơi số Thuật tốn sau: REPEAT Nhập kí tự KT UNTIL (KT ≥ ‘0’) AND (KT ≤ ‘9’) Đổi KT sang số thập phân Nhân đôi số Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 73 TITLE VI DU LAP MODEL SMALL STACK 100H CODE MAIN PROC NhapLai: MOV AH, ;Nhập kí tự INT 21h CMP AL, ’0’ JB NhapLai ;Nếu AL < ’0’ nhập lại CMP AL, ’9’ JA NhapLai ;Nếu AL > ’9’ nhập lại SUB AL, 30h ;Đổi sang số thập phân tương ứng ;Các lệnh khác MOV AH, 4Ch ;Kết thúc INT 21h MAIN ENDP END MAIN Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 74 Giải thích: Kí tự ‘0’ có mã ASCII 30h Kí tự ‘1’ có mã ASCII 31h Kí tự ‘9’ có mã ASCII 39h Để đổi kí tự số sang số thập phân tương ứng, ta lấy mã ASCII đem trừ cho 30h Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 75 Lặp với số lần lặp biết trước (For) Ví dụ: Hiện hình 10 số nguyên theo thứ tự: 0, 1, 2, 3, , Thuật toán sau: FOR I = TO DO Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 76 TITLE VI DU LAP FOR MODEL SMALL STACK 100H DATA I DB ;Khởi tạo giá trị biến I CODE MAIN PROC MOV AX, @DATA MOV DS, AX Lap: MOV DL, I ADD DL,30h ;Đổi số nguyên sang kí tự số tương ứng MOV AH, ;Chức số 2: Hiện kí tự INT 21h INC I ;Tăng biến I lên CMP I, 10 JNZ Lap ;Nếu I ≠ 10 lặp lại MOV AH, 4Ch ;Kết thúc INT 21h MAIN ENDP END MAIN Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 77 Lệnh lặp LOOP Đây cấu trúc lệnh có sẵn hợp ngữ để thực vòng lặp biết trước số lần lặp Cách viết lệnh sau: MOV CX, NHANLAP: ;Các lệnh cần lặp LOOP NHANLAP Số lần lặp đặt vào ghi CX, sau lần lặp CX tự động giảm Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 78 TITLE VI DU LAP LOOP MODEL SMALL STACK 100H DATA I DB ;Khởi tạo giá trị biến I CODE MAIN PROC MOV AX, @DATA MOV DS, AX MOV CX, 10 ;Số lần lặp Lap: MOV DL, I ADD DL,30h ;Đổi số nguyên sang kí tự số tương ứng MOV AH, ;Chức số 2: Hiện kí tự INT 21h INC I ;Tăng biến I lên LOOP Lap MOV AH, 4Ch ;Kết thúc INT 21h MAIN ENDP END MAIN Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 79 Hết Phần 2.2 Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 80 ... mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 18 Ví dụ: XCHG AX, BX Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT ;hốn đổi nội dung ; AX BX Kiến trúc máy tính - 19 Lệnh ADD SUB... – Khoa CNTT Kiến trúc máy tính - 46 Ta thu file Baitap.exe Để chạy file việc gõ lệnh: Baitap (Enter) Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 47 2.6.5 Các lệnh nhảy Thanh... Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 29 Ví dụ 2: Hiện kí tự ‘M’ hình MOV AH, MOV DL, ‘M’ INT 21h Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Kiến trúc máy tính - 30 Chương

Ngày đăng: 18/05/2021, 16:09

Xem thêm:

TỪ KHÓA LIÊN QUAN

w