Bài giảng môn học Kiến trúc máy tính - Lập trình hợp ngữ

64 23 0
Bài giảng môn học Kiến trúc máy tính - Lập trình hợp ngữ

Đ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

Mơn học: Kiến trúc máy tính Nội dung • Mơ tả tập lệnh 8086 • Lập trình hợp ngữ 8086 Nội dung • Mơ tả tập lệnh 8086  Các lệnh di chuyển liệu  Các lệnh số học logic  Các lệnh điều khiển chương trình • Lập trình hợp ngữ với 8086 Các lệnh di chuyển liệu • MOV, XCHG, POP, PUSH, POPF, PUSHF, IN, OUT • Các lệnh di chuyển chuỗi MOVS, MOVSB, MOVSW • MOV  Dùng để chuyển ghi, ghi ô nhớ chuyển số vào ghi ô nhớ  Cú pháp: MOV Đích, nguồn  Lệnh khơng tác động đến cờ  Ví dụ:  MOV AX, BX  MOV AH, „A‟  MOV AL, [1234H] Các lệnh di chuyển liệu • Lệnh XCHG      Dùng để hoán chuyển nội dung hai ghi, ghi ô nhớ Cú pháp: XCHG Đích, nguồn Giới hạn: tốn hạng không ghi đoạn Lệnh không tác động đến cờ Ví dụ:  XCHG AX, BX  XCHG AX, [BX] Các lệnh di chuyển liệu • Lệnh PUSH       Dùng để cất từ từ ghi ô nhớ vào đỉnh ngăn xếp Cú pháp: PUSH Nguồn Mô tả: SP=SP-2, Nguồn => {SP} Giới hạn: ghi 16 bit từ nhớ Lệnh không tác động đến cờ Ví dụ:  PUSH BX  PUSH PTR[BX] • Lệnh PUSHF  Cất nội dung ghi cờ vào ngăn xếp Các lệnh di chuyển liệu • Lệnh POP       Dùng để lấy lại từ vào ghi ô nhớ từ đỉnh ngăn xếp Cú pháp: POP Đích Mơ tả: {SP} => Đích, SP=SP+2 Giới hạn: ghi 16 bit (trừ CS) từ nhớ Lệnh không tác động đến cờ Ví dụ:  POP BX  POP PTR[BX] • Lệnh POPF  Lấy từ từ đỉnh ngăn xếp đưa vào ghi cờ Nội dung • Mơ tả tập lệnh 8086  Các lệnh di chuyển liệu  Các lệnh số học logic  Các lệnh điều khiển chương trình • Lập trình hợp ngữ với 8086 Các lệnh số học logic • • • • Lệnh Lệnh Lệnh Lệnh số học: ADD, SUB, MUL, IMUL, DIV, IDIV, INC, DEC Logic: AND, OR, NOT, NEG, XOR quay dịch: ROL, ROR, SAR, SHL, SHR so sánh: CMP Các lệnh số học logic • Lệnh ADD  Lệnh cộng hai tốn hạng  Cú pháp: ADD Đích, nguồn  Thực hiện: Đích=Đích + nguồn  Giới hạn: tốn hạng khơng ô nhớ ghi đoạn  Lệnh thay đổi cờ: AF, CF, OF, PF, SF, ZF  Ví dụ:  ADD AX, BX  ADD AX, 40H • Lệnh SUB       Lệnh trừ Cú pháp: SUB Đích, nguồn Thực hiện: Đích=Đích - nguồn Giới hạn: tốn hạng khơng ô nhớ ghi đoạn Lệnh thay đổi cờ: AF, CF, OF, PF, SF, ZF Ví dụ:  SUB AL, 30H Cấu trúc lựa chọn case • case Biểu thức Giá trị 1: công việc Giá trị 2: công việc Giá trị N: công việc N End Case • Ví dụ: Nếu AX0 CX=1 CMP JL JE JG AM: MOV JMP AX, ; AM ; AX0 CX, -1 End_case Khong: MOV JMP CX, End_case DUONG: MOV End_case: CX, Cấu trúc lặp FOR-DO • for (số lần lặp) (cơng việc) ví dụ: Hiển thị dịng ký tự $ hình khởi tạo đếm công việc giảm đếm đếm=0? Đ S MOV CX, 80 MOV AH,2 MOV DL,’$’ HIEN: INT 21H LOOP HIEN End_for ;số lần lặp ;hàm hiển thị ;DL chứa ký tự cần hiển thị ; Hiển thị Cấu trúc lặp While-DO • while (điều kiện) (cơng việc) ví dụ: đếm số ký tự đọc từ bàn phím, gặp ký tự CR thơi Đ Điều kiện S công việc XOR CX, CX MOV AH,1 TIEP: INT 21H CMP AL, 13 JE End_while INC CX JMP TIEP End_while: ;CX=0 ;hàm đọc ký tự từ bàn phím ; đọc ký tự vào AL ; đọc CR? ; đúng, thoát ; sai, thêm ký tự vào tổng ; đọc tiếp Cấu trúc lặp Repeat-until • Repeat (cơng việc) until (điều kiện) ví dụ: đọc từ bàn phím gặp ký tự CR công việc Điều kiện Đ S MOV TIEP: INT CMP JNE End_: AH,1 21H AL, 13 TIEP ;hàm đọc ký tự từ bàn phím ; đọc ký tự vào AL ; đọc CR? ; chưa, đọc tiếp Nội dung • Các chế độ địa 8086  Chế  Chế  Chế  Chế  Chế  Chế  Chế độ độ độ độ độ độ độ địa địa địa địa địa địa địa chỉ chỉ chỉ ghi tức trực tiếp gián tiếp qua ghi tương đối sở tương đối số tương đối số sở Chế độ địa ghi (Register Addressing Mode) • Dùng ghi tốn hạng • Tốc độ thực lệnh cao • Ví dụ:  MOV BX, DX  MOV AL, BL  MOV AL, BX  MOV ES, DS  MOV CS, AX ; Copy nội dung DX vào BX ; Copy nội dung BL vào AL ; khơng hợp lệ ghi có kích thước khác ; khơng hợp lệ (segment to segment) ; khơng hợp lệ CS khơng dùng làm ghi đích  ADD AL, DL ; Cộng nội dung AL DL đưa vào AL Chế độ địa tức (Immediate Addressing Mode) • Tốn hạng đích ghi nhớ • Tốn hạng nguồn số • Dùng để nạp số vào thi (trừ ghi đoạn cờ) vào ô nhớ đoạn liệu DS • Ví dụ:  MOV BL, 44 ; Copy số thập phân 44 vào ghi BL  MOV AX, 44H ; Copy 0044H vào ghi AX  MOV AL, „A‟ ; Copy mã ASCII A vào ghi AL  MOV DS, 0FF0H ; không hợp lệ  MOV AX, 0FF0H ;  MOV DS, AX ;  MOV [BX], 10 ; copy số thập phân 10 vào ô nhớ DS:BX Chế độ địa trực tiếp (Direct Addressing Mode) • Một tốn hạng địa nhớ chứa liệu • Tốn hạng ghi • Ví dụ:  MOV AL, [1234H] ; Copy nội dung nhớ có địa DS:1234 vào AL  MOV [ 4320H ], CX ; Copy nội dung CX vào ô nhớ liên tiếp DS: 4320 DS: 4321 Chế độ địa gián tiếp qua ghi (Register indirect Addressing Mode) • Một tốn hạng ghi chứa địa nhớ liệu • Tốn hạng ghi • Ví dụ:  MOV AL, [BX] ; Copy nội dung ô nhớ có địa DS:BX vào AL  MOV [ SI ], CL ; Copy nội dung CL vào ô nhớ có địa DS:SI  MOV [ DI ], AX ; copy nội dung AX vào ô nhớ liên tiếp DS: DI DS: (DI +1) Chế độ địa tương đối sở (Based relative Addressing Mode) • Một tốn hạng ghi sở BX, BP số biểu diễn giá trị dịch chuyển • Tốn hạng ghi • Ví dụ:  MOV CX, [BX]+10 ; Copy nội dung nhớ liên tiếp có địa DS:BX+10 DS:BX+11 vào CX  MOV CX, [BX+10] ; Cách viết khác lệnh  MOV AL, [BP]+5 ; copy nội dung ô nhớ SS:BP+5 vào ghi AL Chế độ địa tương đối số (Indexed relative Addressing Mode) • Một tốn hạng ghi số SI, DI số biểu diễn giá trị dịch chuyển • Tốn hạng ghi • Ví dụ:  MOV AX, [SI]+10 ; Copy nội dung ô nhớ liên tiếp có địa DS:SI+10 DS:SI+11 vào AX  MOV AX, [SI+10] ; Cách viết khác lệnh  MOV AL, [DI]+5 ; copy nội dung ô nhớ DS:DI+5 vào ghi AL Chế độ địa tương đối số sở ( Based Indexed relative Addressing Mode) • Ví dụ:  MOV AX, [BX] [SI]+8 ; Copy nội dung ô nhớ liên tiếp có địa DS:BX+SI+8 DS:BX+SI+9 vào AX  MOV AX, [BX+SI+8] ; Cách viết khác lệnh  MOV CL, [BP+DI+5] ; copy nội dung ô nhớ SS:BP+DI+5 vào ghi CL Tóm tắt chế độ địa Chế độ địa Toán hạng Thanh ghi đoạn ngầm định Thanh ghi Thanh ghi Tức Dữ liệu Trực tiếp [offset] DS Gián tiếp qua ghi [BX] [SI] [DI] DS DS DS Tương đối sở [BX] + dịch chuyển [BP] + dịch chuyển DS SS Tương đối số [DI] + dịch chuyển [SI] + dịch chuyển DS DS Tương đối số sở [BX] + [DI]+ dịch chuyển [BX] + [SI]+ dịch chuyển [BP] + [DI]+ dịch chuyển [BP] + [SI]+ dịch chuyển DS DS SS SS Bỏ chế độ ngầm định ghi đoạn (Segment override) • Ví dụ:  MOV AL, [BX]; Copy nội dung nhớ có địa DS:BX vào AL  MOV AL, ES:[BX] ; Copy nội dung ô nhớ có địa ES:BX vào AL ... thực hợp ngữ Lập trình hợp ngữ với 8086 • Giới thiệu khung chương trình hợp ngữ     • Cú pháp chương trình hợp ngữ Dữ liệu cho chương trình Biến Khung chương trình hợp ngữ Các cấu trúc lập trình. .. khung chương trình hợp ngữ     • Cú pháp chương trình hợp ngữ Dữ liệu cho chương trình Biến Khung chương trình hợp ngữ Các cấu trúc lập trình thực hợp ngữ Khung chương trình hợp ngữ • Khai... chương trình có END MAIN Khung chương trình hợp ngữ • Chương trình Hello.EXE Lập trình hợp ngữ với 8086 • • Giới thiệu khung chương trình hợp ngữ Các cấu trúc lập trình thực hợp ngữ  Cấu trúc

Ngày đăng: 28/10/2021, 11:29

Hình ảnh liên quan

• Xuất chuỗi ký tự ra màn hình (AH=09H) - Bài giảng môn học Kiến trúc máy tính - Lập trình hợp ngữ

u.

ất chuỗi ký tự ra màn hình (AH=09H) Xem tại trang 29 của tài liệu.
ví dụ: Hiển thị một dòng ký tự $ trên màn hình - Bài giảng môn học Kiến trúc máy tính - Lập trình hợp ngữ

v.

í dụ: Hiển thị một dòng ký tự $ trên màn hình Xem tại trang 51 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan