Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
33,11 MB
Nội dung
GV: Ths Phạm Nguyên Văn Lệnh model lựa chọn mô hình nhớ Tiny: Mã DL phối hợp < 64K Small: Mã =5, tiếp sau tên nhãn Khi sử dụng lệnh nhảy có điều kiện sau thực so sánh phải lưu ý toán hạng phép so sánh có dấu hay không dấu để chọn lệnh cho phù hợp Vd: mov ah, al ; al = 128 cmp ah, jge Greater ; ah > không nhảy ??? … Greater: 32 Một số lệnh nhảy thường dùng: JE, JZ: nhảy JA (nhảy lớn hơn, không dấu), JG (nhảy lớn hơn, có dấu), JB (nhảy nhỏ hơn, không dấu), JL (nhảy nhỏ hơn, có dấu) JAE (nhảy lớn bằng, không dấu), JGE (nhảy lớn bằng, có dấu), JBE (nhảy [...]... 11 Vd: ta có từ kép 32 bit, muốn nạp từ cao vào DX, từ thấp vào AX: data val32 dd ? code mov ax, val32 ; có từ thấp (error) mov dx, val32+2 ; có từ cao (error) Sửa lại: mov ax, word ptr val32 mov dx, word ptr val32+2 ; AX = 1 234 h ; DX = 5678h 12 LABEL: chèn 1 nhãn và gán cho nó 1 thuộc tính kích cỡ, mà không phân bổ bộ nhớ VD: khai báo 1 nhãn trước khi val32 gọi val16, và gán thuộc... data val1 dw 1000h val2 db 10,20 ,30 array dw 32 dup(0) array2 dw 5 dup (3 dup(0)) message db ‘File not found’,0 code mov ax,length val1 ; = 1 mov ax,length val2 ; = 1 mov ax,length array; = 32 mov ax,length array2 ;=5 mov ax,length message ;=1 19 Toán tử SIZE: = length * type của 1 biến intArray dw 32 dup(0) ; SIZE = 64 20 Định nghĩa 1 dãy các hằng và gán giá trị nguyên cho từng hằng Tất cả các... gọi val16, và gán thuộc tính word: data val16 label word val32 dd 1 234 5678h code mov ax,val16 mov dx,val32 13 EVEN và EVENDATA: căn thẳng hàng lệnh kế tiếp trong đoạn mã theo offset 16bit đều Vd: 1 lệnh NOP 1-byte (90h) được chèn vào mã đã biên dịch nơi even xuất hiện Lệnh tiếp theo nằm tại 0006: 0000 mov ax,@data 00 03 mov ds, ax 0005 even ; byte chứa 90h được chèn ở đây 0006... mảng 16bit trả về 2 Kiểu 1 nhãn gần là FFFFh, kiểu 1 nhãn xa là FFFEh 16 data var1 db 20h var2 dw 1000h var3 dd ? var4 db 10,20 ,30 ,40,50 msg db ‘File not found’,0 code L1: mov ax,type var1 ;ax = 0001 mov ax,type var2 ;ax = 0002 mov ax,type var3 ;ax = 0004 mov ax,type var4 ;ax = 0001 mov ax,type msg ;ax = 0001 mov ax,type L1 ;ax = FFFF 17 Toán tử length: đếm số lượng các thành... 0000 str1 db 3 dup(‘X’) 00 03 evendata 0004 array dw 10 dup(0FFFFh) 15 Toán tử SHORT: thường sử dụng với JMP khi thực hiện nhảy ngắn khoảng ... kép 32 bit, muốn nạp từ cao vào DX, từ thấp vào AX: data val32 dd ? code mov ax, val32 ; có từ thấp (error) mov dx, val32+2 ; có từ cao (error) Sửa lại: mov ax, word ptr val32 mov... val32 gọi val16, gán thuộc tính word: data val16 label word val32 dd 1 234 5678h code mov ax,val16 mov dx,val32 13 EVEN EVENDATA: thẳng hàng lệnh đoạn mã theo offset 16bit Vd: lệnh... 1000h val2 db 10,20 ,30 array dw 32 dup(0) array2 dw dup (3 dup(0)) message db ‘File not found’,0 code mov ax,length val1 ; = mov ax,length val2 ; = mov ax,length array; = 32 mov ax,length array2