Chuong 07 Toantu potx

38 168 0
Chuong 07 Toantu potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

107/01/14 Chuong 7 Cac phep dinh vi dia chi Toán tử số học Toán tử số học Toán tử Toán tử Cú pháp Cú pháp Công dụng Công dụng + + + expression + expression Dương Dương - - - expression - expression m m * * exp1*exp2 exp1*exp2 Nhân Nhân / / exp1/exp2 exp1/exp2 Chia Chia MOD MOD exp1 mod exp2 exp1 mod exp2 Phần dư Phần dư + + exp1 + exp2 exp1 + exp2 Cộng Cộng - - exp1 - exp2 exp1 - exp2 Trừ Trừ SHL SHL exp shl n exp shl n Dòch exp sang trái n bit Dòch exp sang trái n bit SHR SHR exp shr n exp shr n Dòch exp sang phải n bit Dòch exp sang phải n bit 207/01/14 Chuong 7 Cac phep dinh vi dia chi Toaùn töû logic Toaùn töû logic Not Not Not expression Not expression And And Exp1 and exp2 Exp1 and exp2 Or Or Exp1 or exp2 Exp1 or exp2 Xor Xor Exp1 xor exp2 Exp1 xor exp2 Ex : MOV AH , 8 OR 4 AND 2 MOV AL, NOT (20 XOR 0011100B) 307/01/14 Chuong 7 Cac phep dinh vi dia chi Toán Tử Quan Hệ Toán Tử Quan Hệ So sánh 2 biểu thức và cho trò là true (-1) nếu So sánh 2 biểu thức và cho trò là true (-1) nếu điều kiện của toán tử thỏa, ngược lại là false. điều kiện của toán tử thỏa, ngược lại là false. EQ EQ Exp1 EQ exp2 Exp1 EQ exp2 True True nếu nếu Exp1 = exp2 Exp1 = exp2 NE NE Exp1 NE exp2 Exp1 NE exp2 True True nếu nếu Exp1 <> exp2 Exp1 <> exp2 LT LT Exp1 LT exp2 Exp1 LT exp2 True n True n ếu ếu Exp1 < exp2 Exp1 < exp2 LE LE Exp1 LE exp2 Exp1 LE exp2 True True nếu nếu Exp1 <= exp2 Exp1 <= exp2 GT GT Exp1 GT exp2 Exp1 GT exp2 True n True n ếu ếu Exp1 > exp2 Exp1 > exp2 GE GE Exp1 GE exp2 Exp1 GE exp2 True True nếu nếu Exp1 >= exp2 Exp1 >= exp2 407/01/14 Chuong 7 Cac phep dinh vi dia chi ĐỘ ƯU TIÊN ĐỘ ƯU TIÊN TOÁN TOÁN TỬ TỬ TOÁN TỬ TOÁN TỬ MÔ TẢ MÔ TẢ ( ) ( ) Dấu ngoặc Dấu ngoặc + , - + , - Dấu dương , âm Dấu dương , âm * / MOD * / MOD Nhân , chia, Modulus Nhân , chia, Modulus + , - + , - Cộng, trừ Cộng, trừ Độ ưu tiên giảm dần 507/01/14 Chuong 7 Cac phep dinh vi dia chi Toán tử SEG Toán tử SEG Cú pháp : Cú pháp : SEG expression SEG expression Cho đòa chỉ đoạn của biểu thức expression. Cho đòa chỉ đoạn của biểu thức expression. Expression có thể là biến | nhãn | tên segment Expression có thể là biến | nhãn | tên segment hay toán hạng bộ nhớ khác. hay toán hạng bộ nhớ khác. 607/01/14 Chuong 7 Cac phep dinh vi dia chi Toán tử OFFSET Toán tử OFFSET Cú pháp : Cú pháp : OFFSET OFFSET expression expression Cho đòa chỉ OFFSET của biểu thức expression. Cho đòa chỉ OFFSET của biểu thức expression. Expression có thể là biến | nhãn | tên segment Expression có thể là biến | nhãn | tên segment hay toán hạng trực tiếp bộ nhớ khác. hay toán hạng trực tiếp bộ nhớ khác. Ex : nạp đòa chỉ segment và offset của biến table vào DS :AX TABLE DB ? MOV AX, SEG TABLE MOV DS, AX MOV DX, OFFSET Table 707/01/14 Chuong 7 Cac phep dinh vi dia chi TOÁN TỬ $ TOÁN TỬ $ Cho đòa chỉ của OFFSET của phát Cho đòa chỉ của OFFSET của phát biểu chứa toán tử $. biểu chứa toán tử $. Thường được dùng để tính chiều dài Thường được dùng để tính chiều dài chuổi. chuổi. 807/01/14 Chuong 7 Cac phep dinh vi dia chi TOÁN TỬ PTR TOÁN TỬ PTR Cú pháp : Cú pháp : type PTR expression type PTR expression Cho phép thay đổi dạng của expression Cho phép thay đổi dạng của expression nếu expr là 1 nếu expr là 1 biến biến | | toán hạng bộ nhớ toán hạng bộ nhớ thì type có thì type có thể là byte , word hay dword. thể là byte , word hay dword. Nếu expr là 1 nhãn thì type có thể là near hay Nếu expr là 1 nhãn thì type có thể là near hay far. far. Ex : mov ax, word ptr var1 ; var1 là toán hạng kiểu Word mov bl , byte ptr var2 ; var2 là toán hạng kiểu byte 907/01/14 Chuong 7 Cac phep dinh vi dia chi Toán hạng (Operand) Toán hạng (Operand) Các toán hạng chỉ ra nơi chứa dữ liệu cho 1 lệnh , chỉ thò. Hầu hết các lệnh Assembly đều có đối số là 1 hoặc 2 toán hạng Có 1 số lệnh chỉ có 1 toán hạng như RET, CLC. Với các lệnh 2 toán hạng thì toán hạng thứ 2 là toán hạng nguồn (source) – chứa dữ liệu hoặc đòa chỉ của dữ liệu. 1007/01/14 Chuong 7 Cac phep dinh vi dia chi Toán hạng (Operand) Toán hạng (Operand) Toán hạng đích giữ kết quả (nếu có yêu cầu) sau khi thi hành lệnh. Toán hạng đích có thể là thanh ghi hay Bộ nhớ. Toán hạng nguồn có thể là thanh ghi, bộ nhớ hay 1 giá trò tức thời . Toán hạng số tức thời có thể là số trong các hệ đếm khác nhau và được viết theo qui đònh sau : Số hệ 2 : xxxxxxxxB (x là bit nhò phân) Số hệ 10 : xxxxxD hay xxxxx (x là 1 số hệ 10) Số hệ 16 : xxxxH và bắt đầu bằng số (x là 1 số hệ 16) [...].. .07/ 01/14 Chuong 7 Cac phep dinh vi 11 07/ 01/14 Chuong 7 Cac phep dinh vi 12 ĐỊNH VỊ THANH GHI Giá trị của tốn hạng được truy xuất nằm ngay trong thanh ghi của CPU Ex : MOV AX,BX ; chuyển nội dung của thanh ghi BX vào thanh ghi AX 07/ 01/14 Chuong 7 Cac phep dinh vi 13 07/ 01/14 Chuong 7 Cac phep dinh vi 14 Đònh vò gián tiếp thanh ghi : EX1... hiệu dụng 07/ 01/14 Chuong 7 Cac phep dinh vi 18 ĐỊA CHỈ HIỆU DỤNG Một số thí dụ Đòa chỉ hiệu dụng hợp lệ : [1000h] [SI], [DI] , [BX] , [BP] [SI+BX], [SI+BP] , [DI+BX] , [DI+BP] , [SI+1000h], [DI+100h] [SI] [BX] [1000h], [SI+BP+1000h] , [DI+BX][1000h], [DI+1000h]+ [BP] Đòa chỉ hiệu dụng không hợp lệ : [70000], [AX] , [SI+DI+1000h], [BX] [BP] 07/ 01/14 Chuong 7 Cac phep dinh vi 19 07/ 01/14 Chuong 7 Cac... của ơ nhớ mà địa chỉ Offset lưu trong BP và địa chỉ đoạn lưu trong ES vào AX 07/ 01/14 Chuong 7 Cac phep dinh vi 15 ĐỊNH VỊ TRỰC TIẾP Địa chỉ Offset của ơ nhớ chứa dữ liệu tốn hạng nằm trực tiếp trong câu lệnh còn địa chỉ segment ngầm định chứa trong DS Ex : MOV BX, [1234] Nạp nộI dung ơ nhớ có địa chỉ DS:1234  BX 07/ 01/14 Chuong 7 Cac phep dinh vi 16 ĐỊNH VỊ CƠ SỞ Địa chỉ Offset của tốn hạng được tính... MOV reg, immed MOV mem, immed MOV mem16, segreg MOV segreg, mem16 07/ 01/14 Chuong 7 Cac phep dinh vi 24 Minh hoạ lệnh MOV MOV AX, CX MOV DL, BH MOV [SI+1000h], BP ; [SI+1000h, SI+1001h] MOV DX, [1000h] ; DX [1000h, 1001h] MOV DI, 12h MOV AL, 12h MOV BYTE PTR [1000h], 12h MOV WORD PTR [2000h] , 1200h MOV [BX] , DS MOV SS, [2000h] 07/ 01/14 Chuong 7 Cac phep dinh vi 25 BP Chú ý Lệnh MOV không làm ảnh hưởng... thể chuyển trực tiếp giữa 2 thanh ghi đoạn 07/ 01/14 Chuong 7 Cac phep dinh vi 26 Minh họa lệnh MOV Ex1 : Cho table là 1 mảng gồm 10 phần tử dạng byte Table DB 3,5,6,9,10, 29,30,46,45,90 Truy xuất phần tử đầu , phần tử thứ 2 và thứ 5 của mảng: MOV AL, TABLE hay MOV AL, TABLE[0] MOV AL, TABLE+1 hay MOV AL, TABLE[1] MOV AL, TABLE+4 hay MOV AL, TABLE[4] 07/ 01/14 Chuong 7 Cac phep dinh vi 27 Minh họa lệnh... vào Reg AX 07/ 01/14 Chuong 7 Cac phep dinh vi 28 Áp dụng Viết chương trình chuyển nội dung vùng nhớ bắt đầu tại đòa chỉ 700h sang vùng nhớ có đòa chỉ bắt đầu là 1000h Biết chiều mỗi vùng nhớ là 9 bytes và dữ liệu đang khảo sát trong đoạn được chỉ bởi DS Cho vùng nhớ MEM có chiều dài 9 bytes gồm các ký tự ‘abcdefghi’ trong đoạn chỉ bởi DS Viết chương trình đảo ngược vùng nhớ MEM 07/ 01/14 Chuong 7 Cac... [DI][BX][2000h] ; SI 07/ 01/14 1000h DI + BX + 2000h Chuong 7 Cac phep dinh vi 30 Lệnh XCHG (XCHANGE) Cú pháp : XCHG DEST , SOURCE ý nghóa : hoán chuyển nội dung 2 Reg, Reg và ô nhớ Yêu cầu : 2 toán hạng phải cùng kiểu 2 toán hạng không thể là 2 biến bộ nhớ Muốn hoán đổi trò của 2 biến phải dùng Reg trung gian Ex : XCHG AH, BL MOV VAR1, VAR2 ; không hợp lệ, phải dùng Reg tạm 07/ 01/14 Chuong 7 Cac phep... bit vào STACK Ex : PUSH DI ; [SS :SP+1, SS :SP] DI Ex : PUSH CS ; [SS :SP+1, SS :SP] CS 07/ 01/14 Chuong 7 Cac phep dinh vi 32 Lệnh POP Cú pháp : POP REG16 POP MEM16 POP SEGREG Lấy dữ liệu từ đỉnh STACK vào toán hạng đòch Ex : POP AX ; AX [SS :SP+1, SS :SP] Ex : POP [BX+1] ; [BX+2, BX+1] 07/ 01/14 [SS :SP+1, SS :SP] Chuong 7 Cac phep dinh vi 33 Lệnh IN Cú pháp : IN ACCUM, IMMED8 IN ACCUM, DX nhập dữ liệu... Reg DX dùng Để cho cổng có đòa chỉ 16 bit IN AL, DX 07/ 01/14 Chuong 7 Cac phep dinh vi 34 SUMMARY Dùng DEBUG để hợp dòch và chạy chương trình sau : Chép 3 số nguyên kiểu Word ở đòa chỉ 0120h vào đòa chỉ 0130h Cho biết giá trò của AX sau khi các lệnh sau được thực thi : MOV AX, ARRAY1 INC AX ADD AH, 1 SUB AX, ARRAY1 …… ARRAY1 DW 10h, 20h 07/ 01/14 Chuong 7 Cac phep dinh vi 35 SUMMARY Giả sử biến VAL1... bit 07/ 01/14 : BYTE PTR [1000H] : WORD PTR [1000H] Tham khảo 1 byte b ộ nhớ ở đòa chỉ 1000h Tham khảo 2 byte b ộ nhớ liên tiếp ở đòa chỉ 1000h và 1001 h Chuong 7 Cac phep dinh vi 21 Ex : Tính tổng 1 array có 5 phần tử Cách thực hiện : MOV BX, OFFSET LIST MOV AX, 0 MOV AL, [BX] ADD AL , [BX+1] ADD AL , [BX+2] ADD AL , [BX+3] ADD AL , [BX+4] MOV SUM , AX ……… LIST DB 10h, 20h, 40h, 2h, 5h SUM DW 0 07/ 01/14 . xxxxH và bắt đầu bằng số (x là 1 số hệ 16) 1 107/ 01/14 Chuong 7 Cac phep dinh vi dia chi 1 207/ 01/14 Chuong 7 Cac phep dinh vi dia chi 1 307/ 01/14 Chuong 7 Cac phep dinh vi dia chi ĐỊNH VỊ THANH. CPU. Ex : MOV AX,BX ; chuyển nội dung của thanh ghi BX vào thanh ghi AX 1 407/ 01/14 Chuong 7 Cac phep dinh vi dia chi 1 507/ 01/14 Chuong 7 Cac phep dinh vi dia chi EX1 : MOV AX, [SI] Nạp nội dung của. exp2 Xor Xor Exp1 xor exp2 Exp1 xor exp2 Ex : MOV AH , 8 OR 4 AND 2 MOV AL, NOT (20 XOR 0011100B) 307/ 01/14 Chuong 7 Cac phep dinh vi dia chi Toán Tử Quan Hệ Toán Tử Quan Hệ So sánh 2 biểu thức và cho

Ngày đăng: 01/07/2014, 08:39

Mục lục

    Toán tử số học

    Toán Tử Quan Hệ

    ĐỘ ƯU TIÊN TOÁN TỬ

    ĐỊNH VỊ THANH GHI

    ĐỊNH VỊ CƠ SỞ

    ĐỊA CHỈ HIỆU DỤNG

    Đòa chỉ hiệu dụng (tt)

    Ex : Tính tổng 1 array có 5 phần tử

    Minh hoạ lệnh MOV

    Minh họa lệnh MOV

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan