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 bộ nhớ. Tiny: Mã và DL phối hợp < 64K. Small: Mã <=64K, DL <= 64K. Một phân đoạn mã, 1 phân đoạn dữ liệu. Medium: Dữ liệu <= 64K, mã có kích cỡ bất kỳ. Nhiều phân đoạn mã, 1 phân đoạn dữ liệu. Compact: Mã <= 64K, dữ liệu kích cỡ bất kỳ. Một đoạn mã, nhiều phân đoạn dữ liệu. Large: Mã > 64K, dữ liệu > 64K. Nhiều phân đoạn mã và dữ liệu. Huge: giống như Large, ngoại trừ các biến riêng lẻ như các mảng có thể > 64K. Flat: Không có phân đoạn nào. Các địa chỉ 32bit được dùng cho cả mã và DL. Chỉ dùng chế độ bảo vệ. 2 Biểu thức là tổ hợp các toán tử và toán hạng được trình biên dịch chuyển thành một giá trị đơn lẻ. 3 1000h * 50h ; = 50000h -4 + 2 ; = -6 count + 2 ; số đếm là 1 hằng 31 MOD 6 ; = 1 6 / 4 ; = 1 ‘2’ – 30h ; = 2(do giá trị của ‘2’ = 32h) 4 Toán tử Cấp Mô tả () 1 Dấu ngoặc đơn +,- 2 Dương và Âm (đơn tử) *, /, mod 3 nhân, chia, lấy phần dư +,- 4 Cộng, trừ 5 OFFSET trả về vị trí của 1 nhãn và biến từ đầu phân đoạn của nó. Toán hạng đích phải là 1 thanh ghi 16bit: VD: mov bx, offset count ; BX trỏ đến count offset có thể được chuyển đến 1 thanh ghi chỉ mục hoặc cơ số. Trong ví dụ sau, bList mặc định nằm tại offset 0000: 6 .data bList db 10h, 20h, 30h, 40h wList dw 1000h, 2000h, 3000h .code mov di, offset bList ; dl = 0000 mov bx, offset bList + 1 ; bx = 0001 mov si, offset wList+2 ; si = 0006 7 Toán tử SEG trả về phần phân đoạn của 1 nhãn hoặc địa chỉ của biến. Thường được dùng khi biến nằm trong 1 phân đoạn khác với phân đoạn hiện do DS trỏ đến VD: đẩy [push] giá trị hiện thời của DS lên stack, ấn định DS theo phân đoạn chứa array, và sau đó phục hồi DS theo giá trị ban đầu của nó 8 push ds ; lưu DS mov ax,seg array ; ấn định ds theo phân đoạn của mảng mov ds, ax mov bx, offset array ; tìm độ dịch vị mảng … ;xử lý mảng pop ds ; phục hồi ds 9 PTR: chạy đè lên kích cỡ ngầm định của một toán hạng. Phát biểu rõ kích cỡ của toán hạng. Phải được kết hợp với các kiểu dữ liệu chuẩn: BYTE, SBYTE, WORD, DWORD, SDWORD, FWORD, QWORD, TBYTE. VD: mov al,byte ptr count mov ax, word ptr newVal mov eax,dword ptr listPointer 10