Thông tin tài liệu
PHẦN II HỢP NGỮ Chương TỔNG QUAN VỀ HỢP NGỮ Nội dung • • • • Giới thiệu hợp ngữ Lập trình với hợp ngữ Ví dụ mẫu Bài tập I.Giới thiệu • Hợp ngữ - Assembly • Trình dịch hợp ngữ - Assembler • So sánh ngơn ngữ máy hợp ngữ Ngôn ngữ máy 5601:0100 5601:0102 5601:0105 B4.02 80.C2.30 50 Hợp ngữ MOV ADD PUSH AH, DL,30 AX Hợp ngữ • Ngơn ngữ lập trình cấp thấp, dùng dạng gợi nhớ tập lệnh mnemonic [operand1 [,operand2] • Các đặc điểm: – Thực thi nhanh – Kích thước nhỏ – Xử lý trực tiếp hệ thống – Có thể viết hệ điều hành, CPU – Khó viết Cú pháp lệnh hợp ngữ • Bộ ký tự – Chữ latinh: A Z, a z – Chữ số thập phân: – Các ký tự đặc biệt: ? @ _ $ : [ ] ( ) < > … – Các ký tự cách: SP, Tab • Từ vựng: – Từ khóa (keyword) – Tên (Symbol, name) Từ khóa • Tên dành riêng hợp ngữ – Tên ghi – Tên gợi nhớ – Tên toán tử –… Đặt tên • Tên hằng, tên biến, tên nhãn… người lập trình đặt • Bắt đầu tên khơng số • Tên khơng trùng với từ khóa • Tên tối đa 31 ký tự Cú pháp lệnh hợp ngữ [label:] mnemonic [operand1 [,operand2]] [; comment] - Từ gợi nhớ xác định hành động câu lệnh - Tra tập lệnh - Chú thích - Các toán hạng, ngăn cách dấu , - Nhãn thay địa câu lệnh - Người lập trình tự đặt Các dạng (t.t) • Thập phân: – Gồm dãy chữ số từ đến 9, thêm ký tự + , - để biểu thị dấu – kết thúc ký tự D khơng cần – Ví dụ: 9871d hay 9871 Các dạng (t.t) • Thập lục phân(hệ 16 hay hex): – Gồm dãy chữ số từ đến ký tự từ A-F (a-f), kết thúc ký tự H – Nếu ký tự bắt đầu khơng phải số phải thêm vào đầu – Ví dụ: 45h 5AF8H 0A28FH số hex 8bit số hex 16 bit bắt đầu A nên phải thêm vào đầu Các dạng (t.t) • Dạng chuỗi: – Gồm dãy ký tự nằm dấu ‘ hay “ – Ví dụ: “Hello Assembly” ‘Xin chao!’ Dữ liệu cho chương trình • Khai báo hằng: – Cú pháp: tên EQU giá trị biểu thức – Ví dụ: MAX EQU 100 loichao EQU ‘Hello!$’ mark EQU 01001110b Khai báo biến • Biến byte: db songuyen a db db 10 ? • Biến từ (word) dw • Biến từ gấp đơi (double word) dd Khai báo biến (t.t) • Biến mảng: tên db/dw tên db/dw mang db mang2 dw • Kiểu chuỗi str db pt1,pt2,pt3,… DUP() 5,3,0,2,1,7 100 DUP (0) ‘chuoi ki tu’ Kiểu mảng • Thực chất loạt byte hay từ nhớ liên tiếp truy xuất địa thơng qua tên biến • • Ví dụ: vùng nhớ B_ARRAY chiều dài byte b_array DB 10h,20h,30h thì: b_array tên gán cho byte b_array+1 tên byte thứ hai b_array+2 tên byte thứ ba Kiểu mảng (t.t) • Nếu B_ARRAY gán địa offset 0200h nội dung nhớ sau : SYMBOL b_array b_array+1 b_array+2 ADDRESS 200h 201h 202h CONTENTS 10h 20h 30h Mảng (t.t) • Ví dụ mảng W_ARRAY phần tử W_ARRAY DW 1000,40,29887,329 • • Giả sử mảng bắt đầu 0300h: SYMBOL ADDRESS CONTENTS W_ARRAY 300h 1000d W_ARRAY+2 302h 40d W_ARRAY+4 304h 29887d W_ARRAY+6 306h 329d Chương trình 16 bit dạng COM model tiny code org 100h : Int 20h end Dạng COM nạp địa 100h Gọi ngắt 20h để kết thúc chương trình COM Ví dụ: HelloC.ASM model tiny code org 100h batdau : Mov dx, offset loichao Mov ah, Int 21h Int 20h loichao db ‘Hello Assembly! $’ end batdau Gọi ngắt 21h/AH=9 Xuất chuỗi hình Chuỗi kết thúc $ Chương trình 16bit dạng EXE Khai báo kích thước stack sử dụng Khai báo đoạn liệu Khai báo đoạn chương trình model small stack data code : Mov Ah,4Ch Int 21h end Qui mô nhớ: small/ medium/ compact/ large/ huge Gọi ngắt 21h/AH=4C h để kết thúc chương trình EXE Các kiểu kích thước nhớ cho chương trình hợp ngữ Ví dụ: HelloE.ASM model small data loichao db ‘Hello Assembly! $’ code batdau : Mov ax,@data Mov ds,ax Mov dx, offset loichao Mov ah, Int 21h Mov ah,4ch Int 21h end batdau Trỏ ghi DS vào đoạn data Dịch thực thi • Bộ dịch hợp ngữ: – MASM – Microsoft – TASM – Borland (Turbo Assembler) – MASM32 – www.masm32.com – NASM – www.sourceforge.net/projects/nasm – Emu8086 ... máy hợp ngữ Ngôn ngữ máy 56 01: 010 0 56 01: 010 2 56 01: 010 5 B4.02 80.C2.30 50 Hợp ngữ MOV ADD PUSH AH, DL,30 AX Hợp ngữ • Ngơn ngữ lập trình cấp thấp, dùng dạng gợi nhớ tập lệnh mnemonic [operand1 [,operand2]... = Địa chuỗi cần xuất INT 21h • Trị trả về: khơng có Các dạng hợp ngữ • Nhị phân: – Gồm dãy chữ số 1, kết thúc ký tự B b – Ví dụ: 010 0 010 1B : 11 110 00 011 110 000b : 8bit 16 bit Các dạng (t.t) • Thập.. .Chương TỔNG QUAN VỀ HỢP NGỮ Nội dung • • • • Giới thiệu hợp ngữ Lập trình với hợp ngữ Ví dụ mẫu Bài tập I.Giới thiệu • Hợp ngữ - Assembly • Trình dịch hợp ngữ - Assembler • So sánh ngơn ngữ máy
Ngày đăng: 12/08/2014, 10:20
Xem thêm: Kiến trúc máy tính PHẦN II HỢP NGỮ - Chương 1 pps, Kiến trúc máy tính PHẦN II HỢP NGỮ - Chương 1 pps