Cấu trúc chung một chương trình Assembly: (xem [17]) Segment_Name SEGMENT
Segment_Name ENDS END
Một số lệnh cơ bản:
1. Lệnh truyền (di chuyển) dữ liệu MOVđích, nguồn
Ví dụ: MOV AX, BX MOV AX, [100]
1. Lệnh lôgic và số học
ADDtoán hạng đích, toán hạng nguồn
ADCtoán hạng đích, toán hạng nguồn (Cờ nhớ CF)
DEC AX ; giảm AX đi 1 đơn vị
CMPtoán hạng 1, toán hạng 2 (cờ nhớ ZF, CF) T1<T2 ? ZF=0 CF=0 T1=T2 ? ZF=1 CF=0 T1>T2 ? ZF=0 CF=1 Ví dụ: ADD AX, BX ADC CX, DX ADD BX, 100 ADD 2000, 10 CMP AX, BX CMP SI, 120 ; so sánh SI với hằng số 1. Lênh dùng cho chuỗi kí tự
MOVSB, REP
1. Lệnh để quản lý đơn vị trung tâm STD, CLD, NOP
1. Lệnh xuất/nhập hay lệnh vào/ra
IN AX, DX ; Dữ liệu ở cổng lưu trong thanh ghi DX sẽ được đọc vào AX IN AL, 1A ; Cổng được chỉ định là các hằng số
OUT DX, AL ; Lệnh xuất dữ liệu ra cổng lưu trong DX OUT 1A, AL ; Cổng được chỉ định là hằng số
1. Lệnh nhảy
JMP đích ; lệnh nhảy không điều kiện JC 802 A ; nhảy khi CF=1
JNC 2308 ; CF=0 JZ 5508 ; ZF=1 JNZ 149B ; ZF=0
CALLđích; gọi chương trình con 1. Lệnh ngắt
INT <số hiệu ngắt>
1. Lệnh xử lý ngăn xếp PUSH <thanh ghi, từ> ; 16 bit POP <thanh ghi, từ> ; 16 bit
Ví dụ: PUSH BX ; cất dữ liệu của BX vào ngăn xếp POP DI ; tạo lại một thanh ghi chỉ số
Biên dịch chương trình assembly: • Chương trình MASM • Chương trình TASM
Bài tập: Viết chương trình Assembly đọc vào ký tự từ bàn phím và hiển thị lên màn hình, sau đó quay trở về DOS.