Bài giảng Cấu trúc máy tính Chương 7 Toán tử

38 9 0
Bài giảng Cấu trúc máy tính  Chương 7 Toán tử

Đ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

Toán tử số học Toán tử + * / MOD + SHL SHR 10/28/21 Cú pháp Công dụng + expression - expression exp1*exp2 exp1/exp2 exp1 mod exp2 exp1 + exp2 exp1 - exp2 exp shl n exp shr n Dương m Nhân Chia Phần dư Cộng Trừ Dịch exp sang trái n bit Dịch exp sang phải n bit Chuong Cac phep dinh vi Toán tử logic Not And Not expression Exp1 and exp2 Or Xor Exp1 or exp2 Exp1 xor exp2 Ex : MOV AH , OR AND MOV AL, NOT (20 XOR 0011100B) 10/28/21 Chuong Cac phep dinh vi Toán Tử Quan Hệ So sánh biểu thức cho trị true (-1) điều kiện toán tử thỏa, ngược lại false EQ Exp1 EQ exp2 NE Exp1 NE exp2 True neáu Exp1 = exp2 True neáu Exp1 exp2 LT Exp1 LT exp2 True neáu Exp1 < exp2 LE Exp1 LE exp2 True neáu Exp1 exp2 10/28/21 Chuong Cac phep dinh vi GE Exp1 GE exp2 True Exp1 >= ĐỘ ƯU TIÊN Độ ưu tiên giảm dần TỬ TOÁN MÔ TẢ TỬ () Dấu ngoặc +,Dấu dương , âm * / MOD Nhân , chia, Modulus +, - 10/28/21 TOÁN Cộng, trừ Chuong Cac phep dinh vi Toán tử SEG Cú pháp : SEG expression Cho địa đoạn biểu thức expression Expression biến | nhãn | tên segment hay toán hạng nhớ khác 10/28/21 Chuong Cac phep dinh vi Toán tử OFFSET Cú pháp : OFFSET expression Cho địa OFFSET biểu thức expression Expression biến | nhãn | tên segment hay toán hạng trực tiếp nhớ khác Ex : nạp địa segment offset biến table vaøo DS :AX TABLE DB ? MOV AX, SEG TABLE MOV DS, AX 10/28/21 Chuong Cac phep dinh vi MOV DX, OFFSET Table TOÁN TỬ $ Cho địa OFFSET phát biểu chứa toán tử $ Thường dùng để tính chiều dài chuổi 10/28/21 Chuong Cac phep dinh vi TOÁN TỬ PTR Cú pháp : type PTR expression Cho phép thay đổi dạng expression expr biến | toán hạng nhớ type byte , word hay dword Nếu expr nhãn type near hay far Ex : mov ax, word ptr var1 ; var1 toán hạng kiểu Word mov bl , byte ptr var2 ; var2 toán 10/28/21 hạng kiểu byteChuong Cac phep dinh vi Toán hạng (Operand) oán hạng nơi chứa liệu cho lệnh , ch lệnh Assembly có đối số Có số lệnh có toán hạng RET, CLC Với lệnh toán hạng toán hạng thứ toán hạng nguồn (source) – chứa liệu địa liệu 10/28/21 Chuong Cac phep dinh vi Toán hạng (Operand) Toán hạng đích giữ kết (nếu có yêu thi hành lệnh Toán hạng đích ghi hay Bộ Toán hạng nguồn ghi, nh tức thời Toán hạng số tức thời số c viết theo qui định sau : Số hệ : xxxxxxxxB (x bit nhị phân) Số hệ 10 : xxxxxD hay xxxxx (x số hệ 10) Số hệ 16 : xxxxH bắt đầu số (x 10/28/21 Chuong Cac phep dinh vi 10 số hệ 16) Tập lệnh Lệnh MOV : Ý nghóa : copy giá trị từ toán hạng nguồn  Cú pháp : MOV dest , source Yêu cầu : Dest source kiểu Dạng lệnh : MOV reg , reg MOV mem , reg MOV reg, mem MOV reg16, segreg MOV segreg, reg16 MOV reg, immed MOV mem, immed MOV mem16, segreg MOV segreg, mem16 10/28/21 Chuong 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] 10/28/21 Chuong Cac phep dinh vi 25 BP Chú ý Lệnh MOV không làm ảnh hưởng đến cờ Không thể chuyển liệu trực tiếp toán hạng nhớ với nhau, muốn chuyển phải dùng ghi trung gian Không thể chuyển giá trị tức thời vào ghi đoạn, muốn chuyển phải dùng ghi trung gian Không thể chuyển trực tiếp ghi đoạn 10/28/21 Chuong Cac phep dinh vi 26 Minh họa lệnh MOV Ex1 : Cho table 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ứ thứ mảng: MOV AL, TABLE hay MOV AL, TABLE[0] MOV AL, TABLE+1 hay MOV AL, TABLE+4 10/28/21 MOV AL, TABLE[1] hay MOV AL, TABLE[4] Chuong Cac phep dinh vi 27 Minh họa lệnh MOV Ex2 : MOV AX, DS : [100h] ; chép nội dung 16 bit địa 100h đoạn DS vào Reg Ex3 : MOV AX, [100h] ; chuyển NỘI DUNG Ơ NHỚ 100h vào R 10/28/21 Chuong Cac phep dinh vi 28 AÙp dụng trình chuyển nội dung vùng nhớ bắt đầu đ hớ có địa bắt đầu 1000h Biết chiều m ytes liệu khảo sát đoạn g nhớ MEM có chiều dài bytes gồm ký tự ‘ ïn DS ơng trình đảo ngược vùng nhớ MEM 10/28/21 Chuong Cac phep dinh vi 29 Lệnh LEA (Load Effective Address) Cú pháp : LEA REG | MEM nghóa : nạp địa Offset vào ghi để khởi động Re Ex : MOV DX, OFFSET MES Tương đương với LEA DX, MES Ex : LEA BX, [1000h] ; BX LEA SI, [DI][BX][2000h] ; SI 10/28/21 1000h DI + BX + 2000h Chuong Cac phep dinh vi 30 Leänh XCHG (XCHANGE) Cú pháp : XCHG DEST , SOURCE ghóa : hoán chuyển nội dung Reg, Reg ô n Yêu cầu : toán hạng phải kiểu ùn hạng biến nhớ Muốn ho đổi trị 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 10/28/21 Chuong Cac phep dinh vi 31 Lệnh PUSH Cú pháp : PUSH REG16 PUSH MEM16 PUSH SEGREG Đẩy toán hạng nguồn 16 bit vaøo STACK Ex : PUSH DI ; [SS :SP+1, SS :SP] DI Ex : PUSH CS ; [SS :SP+1, SS :SP] CS 10/28/21 Chuong Cac phep dinh vi 32 Lệnh POP Cú pháp : POP REG16 POP MEM16 POP SEGREG Lấy 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] 10/28/21 [SS :SP+1, SS :SP] Chuong Cac phep dinh vi 33 Lệnh IN Cú pháp : IN ACCUM, IMMED8 IN ACCUM, DX liệu từ cổng xuất nhập vào ghi tích Trường hợp AX nhập byte thấp trước, byte c Ex : IN AL ,61h Dạng lệnh có Reg DX dùng Để cho cổng có địa 16 bit Ex : MOV DX, 378H IN AX, 40h IN AL, DX 10/28/21 Chuong Cac phep dinh vi 34 SUMMARY Dùng DEBUG để hợp dịch chạy chương trình sau : Chép số nguyên kiểu Word địa 0120h vào địa 0130h Cho biết giá trị AX sau lệnh sau thực thi : MOV AX, ARRAY1 INC AX ADD AH, SUB AX, ARRAY1 …… ARRAY1 DW 10h, 20h 10/28/21 Chuong Cac phep dinh vi 35 SUMMARY Giả sử biến VAL1 địa offset 0120h PTR1 địa 0122h Cho biết giá trị ghi AX, BX lệnh sau thực thi : CODE MOV AX, @DATA MOV DS, AX MOV AX, MOV AL, BYTE PTR VAL1 ; AX = ? MOV BX, PTR1 ; BX = ? XCHG AX, BX ; BX = ? SUB AL,2 ; AX = ? MOV AX, PTR2 ; AX = ? DATA VAL1 DW 3Ah PTR1 DW VAL1 PTR2 DW PTR1 10/28/21 Chuong Cac phep dinh vi 36 Cho biết giá trị ghi bên phải, lệnh đoạn chương trình sau thực thi Giả sử FIRST offset 0H MOV AL, BYTE PTR FIRST+1 AL = ; MOV BX, WORD PTR SECOND+2 ; BX = MOV DX, OFFSET FIRST + ; DX = MOV AX, 4C00H INT 21H …… FIRST DW 1234h SECOND DW 16385 10/28/21 Chuong Cac phep dinh vi 37 Bài tập Lập trình Bài : Viết chương trình nhập ký tự Hiển thị ký tự đứng trước ký tự đứng s thứ tự mã ASCII Kết có dạng : Nhập ký tự : B Ký tự đứng trước : A Ký tự đứng sau : C Bài : Viết chương trình nhập ký tự hiể mã ASCII tổng mã ký tự nhập Kết có dạng : 10/28/21 Chuong Cac phep dinh vi 38 ... ƯU TIÊN Độ ưu tiên giảm dần TỬ TOÁN MÔ TẢ TỬ () Dấu ngoặc +,Dấu dương , âm * / MOD Nhân , chia, Modulus +, - 10/28/21 TOÁN Cộng, trừ Chuong Cac phep dinh vi Toán tử SEG Cú pháp : SEG expression... phep dinh vi MOV DX, OFFSET Table TOAÙN TỬ $ Cho địa OFFSET phát biểu chứa toán tử $ Thường dùng để tính chiều dài chuổi 10/28/21 Chuong Cac phep dinh vi TOÁN TỬ PTR Cú pháp : type PTR expression... byteChuong Cac phep dinh vi Toán hạng (Operand) oán hạng nơi chứa liệu cho lệnh , ch lệnh Assembly có đối số Có số lệnh có toán hạng RET, CLC Với lệnh toán hạng toán hạng thứ toán hạng nguồn (source)

Ngày đăng: 28/10/2021, 12:51

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

  • Lệnh LEA (Load Effective Address)

  • Bài tập Lập trình

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

Tài liệu liên quan