Tổng hợp các lệnh điều khiển hay dùng - Môn Tin học đại cương - Học Viện Kỹ Thuật Mật Mã
LỆNH CƠ BẢN : MOV VÀ XCHG. Mov: [Toán hạng đích], [Toán hạng nguồn]. Tác dụng: Lấy nội dung (giá trị) của [Toán hạng nguồn] đặt vào [Toán hạng đích]. Nội dung của [Toán hạng nguồn] không bị thay đổi. XCHG : chuyển hoán đổi nội dung giữa hai thanh ghi. Tài liệu giúp bạn tham khảo và đạt kết quả tốt. Mời bạn đọc đón xem!
Preview text:
lOMoARcPSD|47892172 CHƯƠNG 1
-Trường tên : chiều dài 1 đến 31 kí tự có thể chứa các kí tự đặc biệt
Không đc chèn dấu trống vào giữa một tên
Nếu sử dụng dấu chấm nó phải đứng đầu
-TOÁN TỬ : chức năng thực hiện phép toán ví dụ : MOV, ADD , SUB
-DỮ LIỆU CHƯƠNG TRÌNH
+ SỐ NHỊ PHÂN : viết như chuỗi bit kết thúc bằng chữ B và b ví dụ 1011b
+ SỐ THẬP PHÂN : keet thúc bằng chữ D d + MÃ HÓA THỰC :r + BÁT PHÂN : q/o + THẬP LỤC PHÂN : h - Toán tử giả biểu diễn DB đn byte DW dn word DD dn từ kép DQ dn 4 word DT dn 10 byte
+ LỆNH CƠ BẢN : MOV VÀ XCHG
Mov : [Toán hạng đích], [Toán hạng nguồn]
Tác dụng: Lấy nội dung (giá trị) của [Toán hạng nguồn] đặt vào [Toán hạng đích]. Nội dung
của [Toán hạng nguồn] không bị thay đổi.
XCHG : chuyển hoán đổi nội dung giữa hai thanh ghi XCHG đích , nguồn -Inc Toán hạng đích -Add
Toán hạng đích],[Toán hạng nguồn
-Dec Toán hạng đích -Sub
Toán hạng đích],[Toán hạng nguồn
-Lệnh Inc (Increment): làm tăng giá trị của [Toán hạng đích] lên 1 đơn vị.
-Lệnh Dec (Decrement): làm giảm giá trị của [Toán hạng đích] xuống 1 đơn vị.
-Lệnh Add (Addition): lấy giá trị/nội dung của [Toán hạng nguồn] cộng vào giá trị/nội -
dung của [Toán hạng đích], kết quả này đặt vào lại [Toán hạng đích]. lOMoARcPSD|47892172
-Lệnh Sub (Subtract): lấy giá trị/nội dung của [Toán hạng đich] trừ đi giá trị/nội dung của
[Toán hạng nguồn], kết quả này đặt vào lại [Toán hạng đích].
_ NEG dùng để phủ định nội dung của toán hạng đích. DEC sẽ thay thế nội dung bởi phần bù 2 của nó LỆNH VÀO RA
INT gọi chương trình hoặc ngắt DOS và BIOS Các toán tử số học Tên mức độ ưu tiên () 1 +,- 2 *,/ 3 MOD 3 +,- 4 Lệnh LOOP Loop
Tác dụng: Khi gặp lệnh này chương trình sẽ lặp lại việc thực hiện các lệnh sau
đủ n lần, với n được đặt trước trong thanh ghi CX. Sau mỗi lần lặp CX tự động giảm 1 đơn
vị (Cx = Cx – 1) và lệnh lặp sẽ dừng khi Cx = 0.
L ⌀nh LEA (LoadEffectiveAddress) Cú pháp:
LEA [Toán hạng đích],[Toán hạng nguồn]
Trong đó: [Toán hạng đích]: Là các thanh ghi 16 bít. [Toán hạng nguồn]: Là địa chị của m ⌀t vùng
nhớ hay tên của một biến.
Thao tác qua thanh ghi và bộ nhớ
EAX EBP EFLAGS EBX ESP EIP C D ESI EDI ( 32 bit ) CS ES SS FS DS GS ( 16 bit )
L ⌀nh LEA (LoadEffectiveAddress) Cú pháp:
LEA [Toán hạng đích],[Toán hạng nguồn]
Trong đó: [Toán hạng đích]: Là các thanh ghi 16 bít. [Toán hạng nguồn]: Là địa chị của m ⌀t
vùng nhớ hay tên của một biến.
L ⌀nh Mul và Div lOMoARcPSD|47892172
Mul [Toán hạng nguồn]
IMul [Toán hạng nguồn]
Div [Toán hạng nguồn]
IDiv [Toán hạng nguồn] Tác dụng:
Lệnh Mul (Multiply): Thực hi ⌀n phép nhân trên số không dấu. AX=AL*nguồn 8bit.
Nếu nguồn là 16bit thì kết quả lưu vào DX AX =AX*nguồn 16bit. Phần thấp ở AX, phần cao ở DX.
Lệnh IMul (Interger Multiply): tương tự như MUL nhưng là số có dấu.
L ⌀nh Div (Divide): không dấu. AL=AX chia nguyên nguồn 8bit, AH=AX chia dư nguồn 8bit.
Nếu là nguồn 16bit: lấy DX AX chia cho nguồn 16bit, thương số chứa trong AX, số dư trong DX
Lệnh Idiv (Integer Divide): tương tự lệnh DIV nhưng là số có dấu. CHƯƠNG 2 1 THANH GHI CỜ
Thanh ghi cờ 16 bit nhưng không phải toàn bộ 16 bit để biểu diễn giá trị cờ:
-Cờ tràn ( overflow flag OF) =1 khi kết quả lớn hơn kích thước địa chị đích
-Cờ hướng( direction flag DF) xác định hướng trái phải DF -=0 từ trái đến phải
-Cờ ngắt (interupt flag IF ) =1 thì tin hiệu ngắt xử lý ngược lại bỏ qua
-Cờ dấu ( sign flag SF) kết quả là – hay + phụ thuộc vào giá trị bit ngoài cùng bên trái SF =1giá trị âm
-Cờ không (zero flag ZF ) thực hiện kết quả phép toán số học hoặc phép so sánh ZF =1 khivà
chị khi kết quả bằng 0 hoặc phép so sánh có kết quả bằng nhau
-Cờ nhớ (Carry flag CF ) chứa giá trị nhớ (0,1) của MSB sau khi thực hiện phép toán số họckhi
dịch bit hoặc quay thì giá trị của bit vị đẩy ra cuối cùng sẽ lưu lại CF
Cờ nhớ phụ trợ (auxiliary carry flag AF) chứa giá trị nhớ khi chuyển từ bit có trong số 3 lênsố 4 ( từ lower đến high)
Cờ chẵn lẻ (parity flag PF) =0 khi số lượng bit 1 là số chẵn
DF, IF, TF là 3 cờ điều khiển OF, SF, ZF, CF, AF và PF là 6 cờ trạng thái
SỰ ẢNH HƯỞNG CỦA CÁC LỆNH ĐẾN CỜ lOMoARcPSD|47892172
ROM: ghi vĩnh viễn vào chip không thể xóa được
EPROM: xóa từ từ bằng tia cực tim và được lập trình lại
DRAM: bộ nhớ chính lưu dữ liệu khi chương trình đang chạySRAM:
bộ nhớ đệm tốc độ cao đắt tiền
VRAM: chứa dữ liệu video nó có cổng kép cho phép 1 cổng liên tục làm mới màn hình trong khi
cổng khác ghi dữ liệu lên màn hình
CMOS RAM: bo mạch chủ hệ thống lưu trữ thông tin thiết lập hệ thống
DẤU HIỆU KÝ HIỆU CỜ DEBUG lOMoARcPSD|47892172
CHƯƠNG 3 CÁC LỆNH ĐIỀU KHIỂN Các lệnh nhảy:
Lệnh nhảy không điều kiện Cú pháp: Jmp
Lệnh nhảy có điều kiện có dấu Lệnh JG:
Nhảy nếu [Đích] > [Nguồn] ; (SF = 0F và ZF = 0) Lệnh JL:
Nhảy nếu [Đích] < [Nguồn] ; (SF <> 0F) Lệnh JGE:
Nhảy nếu [Đích] ≥[Nguồn] ; (SF = 0F) Lệnh JLE:
Nhảy nếu [Đích] ≤[Nguồn] ; (CF <> 0F và ZF = 1)
Lệnh nhảy có điều kiện không dấu Lệnh JA:
Nhảy nếu [Đích] > [Nguồn] ; (CF = 0 và ZF = 0) Lệnh JB:
Nhảy nếu [Đích] < [Nguồn] ; (CF = 0) Lệnh JNA:
Nhảy nếu [Đích] không lớn hơn [Nguồn]; (CF =1 or ZF =1) Lệnh JNB:
Nhảy nếu [Đích] không nhỏ hơn [Nguồn] ; (CF = 0)
Lệnh nhảy dùng chung Lệnh JC:
Nhảy nếu cờ CF = 1
Lệnh JNC: Nhảy nếu cờ CF = 0 Lệnh JZ:
Nhảy nếu cờ ZF = 1
Lệnh JNZ: Nhảy nếu cờ ZF = 0 Lệnh JE:
Nhảy nếu [Đích] = [Nguồn]; Tương tự JZ; (ZF = 1) Lệnh JNE:
Nhảy nếu [Đích] ≠[Nguồn]; Tương tự JNZ; (ZF = 0)
Các lệnh OR , AND , WHILE , ELSE , FOR ĐÃ HỌC TRONG C