Sự cần thiết của lệnh nhảy trong lập trình ASM. Lệnh JMP (Jump) : nhảy không điều kiện. Lệnh LOOP : cho phép lặp 1 công việc với 1 số lần nào đó. Các lệnh so sánh và luận lý
10/17/1210/17/12Chuong 7 Cac phep dinh vi dia chiChuong 7 Cac phep dinh vi dia chi11Chương 6 : Toán tử – Toán hạng - Chương 6 : Toán tử – Toán hạng - các phép đònh đòa chỉ – Tập lệnh các phép đònh đòa chỉ – Tập lệnh Chương 6 : Toán tử – Toán hạng - Chương 6 : Toán tử – Toán hạng - các phép đònh đòa chỉ – Tập lệnh các phép đònh đòa chỉ – Tập lệnh Hiểu cách dùng toán tử trong ASM.Hiểu cách dùng toán tử trong ASM. Nắm được tập lệnh của CPU 8086/8088.Nắm được tập lệnh của CPU 8086/8088. Biết cách đònh đòa chỉ thông qua toán hạng.Biết cách đònh đòa chỉ thông qua toán hạng. Biết vận dụng các kỹ năng trên vào vấn đề cần giải Biết vận dụng các kỹ năng trên vào vấn đề cần giải quyết và hiện thực thành chương trình.quyết và hiện thực thành chương trình.Mục tiêu 210/17/12 Chuong 7 Cac phep dinh vi dia chiToán tửToán tửĐiểm quan trọng phân biệt giữa toán tử và lệnh là :Điểm quan trọng phân biệt giữa toán tử và lệnh là : Toán tử điều khiển sự tính toán các trò hằng xác đònh Toán tử điều khiển sự tính toán các trò hằng xác đònh lúc dòch.lúc dòch. Lệnh điều khiển sự tính toán các trò không xác đònh Lệnh điều khiển sự tính toán các trò không xác đònh được cho đến khi CT thực hiện.được cho đến khi CT thực hiện.Ex : toán tử + điều khiển phép cộng khi dòch.Lệnh cộng ADD điều khiển phép cộng khi chương trình thực hiện. 310/17/12 Chuong 7 Cac phep dinh vi dia chiToán tử số họcToán tử số họcToán tửToán tửCú phápCú phápCông dụngCông dụng+++ expression+ expressionDươngDương--- expression- expressionmm**exp1*exp2exp1*exp2NhânNhân//exp1/exp2exp1/exp2ChiaChiaMODMODexp1 mod exp2exp1 mod exp2Phần dưPhần dư++exp1 + exp2exp1 + exp2CộngCộng--exp1 - exp2exp1 - exp2TrừTrừSHLSHLexp shl nexp shl nDòch exp sang trái n bitDòch exp sang trái n bitSHRSHRexp shr nexp shr nDòch exp sang phải n bitDòch exp sang phải n bit 410/17/12 Chuong 7 Cac phep dinh vi dia chiToaựn tửỷ logicToaựn tửỷ logicNotNotNot expressionNot expressionAndAndExp1 and exp2Exp1 and exp2OrOrExp1 or exp2Exp1 or exp2XorXorExp1 xor exp2Exp1 xor exp2Ex : MOV AH , 8 OR 4 AND 2 MOV AL, NOT (20 XOR 0011100B) 510/17/12 Chuong 7 Cac phep dinh vi dia chiToá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 điề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.kiện của toán tử thỏa, ngược lại là false.EQEQExp1 EQ exp2Exp1 EQ exp2True True nếunếu Exp1 = exp2 Exp1 = exp2NENEExp1 NE exp2Exp1 NE exp2True True nếunếu Exp1 <> exp2 Exp1 <> exp2LTLTExp1 LT exp2Exp1 LT exp2True nTrue nếuếu Exp1 < exp2 Exp1 < exp2LELEExp1 LE exp2Exp1 LE exp2True True nếunếu Exp1 <= exp2 Exp1 <= exp2GTGTExp1 GT exp2Exp1 GT exp2True nTrue nếu ếu Exp1 > exp2Exp1 > exp2GEGEExp1 GE exp2Exp1 GE exp2True True nếunếu Exp1 >= exp2 Exp1 >= exp2 610/17/12 Chuong 7 Cac phep dinh vi dia chiĐỘ ƯU TIÊN ĐỘ ƯU TIÊN TOÁNTOÁN TƯÛ TƯÛTOÁN TƯÛTOÁN TƯÛMÔ TẢMÔ TẢ( )( )Dấu ngoặcDấu ngoặc+ , - + , - Dấu dương , âmDấu dương , âm* / MOD* / MODNhân , chia, ModulusNhân , chia, Modulus+ , - + , - Cộng, trừCộng, trừĐộ ưu tiêngiảm dần 710/17/12 Chuong 7 Cac phep dinh vi dia chiToán tử SEGToán tử SEGCú pháp :Cú pháp : SEG expressionSEG 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. 810/17/12 Chuong 7 Cac phep dinh vi dia chiToán tử OFFSETToán tử OFFSETCú pháp :Cú pháp :OFFSETOFFSET 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 :AXTABLE DB ?MOV AX, SEG TABLEMOV DS, AXMOV DX, OFFSET Table 910/17/12 Chuong 7 Cac phep dinh vi dia chiTOÁN TƯÛ $TOÁN TƯÛ $Cho đòa chỉ của OFFSET của phát biểu Cho đòa chỉ của OFFSET của phát biểu chứa toán tử $.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. 1010/17/12 Chuong 7 Cac phep dinh vi dia chiTOÁN TƯÛ PTRTOÁN TƯÛ PTRCú pháp : Cú pháp : type PTR expressiontype PTR expressionCho phép thay đổi dạng của expressionCho phép thay đổi dạng của expressionnếu expr là 1 nếu expr là 1 biếnbiế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 far. Nếu expr là 1 nhãn thì type có thể là near hay 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 [...]...10/ 17/ 12 10/ 17/ 12 Chuong 7 Cac phep dinh vi dia chi Chuong 7 Cac phep dinh vi dia chi 1 1 Chương 6 : Toán tử – Toán hạng - Chương 6 : Toán tử – Toán hạng - các phép định địa chỉ – Tập lệnh các phép định địa chỉ – Tập lệnh Chương 6 : Toán tử – Toán hạng - Chương 6 : Toán tử – Toán hạng - các phép định địa chỉ – Tập lệnh các phép định địa chỉ – Tập lệnh Hiểu cách dùng toán tử trong ASM. Hiểu... List vào BX Dựa vào BX để xác định các phần tử của array. Khi tính tổng xong, đưa tổng vào biến SUM. 1910/ 17/ 12 Chuong 7 Cac phep dinh vi dia chi ĐỊNH VỊ CƠ SỞ ĐỊNH VỊ CƠ SỞ Địa chỉ Offset của toán hạng được tính là tổng của nộI dung thanh ghi BX hoặc BP và 1 độ dịch. Độ dịch là 1 số nguyên âm hoặc dương. Địa chỉ đọan là đoạn hiện tại. 2510/ 17/ 12 Chuong 7 Cac phep dinh vi dia chi Ex : Tính. .. nạp địa chỉ segment và offset của biến table vaøo DS :AX TABLE DB ? MOV AX, SEG TABLE MOV DS, AX MOV DX, OFFSET Table 371 0/ 17/ 12 Chuong 7 Cac phep dinh vi dia chi SUMMARY SUMMARY Duøng DEBUG để hợp dịch và chạy chương trình sau : 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ỉ Chép 3 số nguyên kiểu Word ở địa chỉ 0120h vào địa chỉ 0130h. 0130h. Cho... trong ASM. Nắm được tập lệnh của CPU 8086/8088. Nắm được tập lệnh của CPU 8086/8088. Biết cách định địa chỉ thông qua toán hạng. Biết cách định địa chỉ thông qua toán hạng. Biết vận dụng các kỹ năng trên vào vấn đề cần giải Biết vận dụng các kỹ năng trên vào vấn đề cần giải quyết và hiện thực thành chương trình. quyết và hiện thực thành chương trình. Mục tiêu 2910/ 17/ 12 Chuong 7 Cac... segment ngầm định chứa trong ES nếu dùng BP 610/ 17/ 12 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 Nhaân , chia, Modulus Nhaân , chia, Modulus + , - + , - Cộng, trừ Cộng, trừ Độ ưu tiên giảm dần 2310/ 17/ 12 Chuong 7 Cac phep dinh vi dia chi Địa chỉ hiệu dụng... có 5 phần tử Ex : Tính tổng 1 array có 5 phần tử - A 100 MOV BX, 0120 MOV AX, 0 MOV AL, [BX] ADD AL , [BX+1] ADD AL , [BX+2] ADD AL , [BX+3] ADD AL , [BX+4] MOV [0125], AX -A 120 DB 10, 20, 40, 2, 5 DW 0 CHẠY CT này bằng DEBUG 4010/ 17/ 12 Chuong 7 Cac phep dinh vi dia chi Baøi Baøi tập tập Lập trình Lập trình Bài 1 : Viết chương trình nhập 1 ký tự. Hiển thị ký tự đứng trước và ký tự đứng sau... 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. 510/ 17/ 12 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 điề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. kiện của toán tử thỏa, ngược lại là false. EQ EQ Exp1 EQ exp2 Exp1... trị tức thời vào thanh ghi đoạn, muốn chuyển phải dùng thanh ghi trung gian. đoạn, muốn chuyển phải dùng thanh ghi trung gian. Không thể chuyển trực tiếp giữa 2 thanh ghi đoạn Không thể chuyển trực tiếp giữa 2 thanh ghi đoạn Chú ý Chú ý 171 0/ 17/ 12 Chuong 7 Cac phep dinh vi dia chi EX1 : MOV AX, [SI] Nạp nội dung của ô nhớ mà địa chỉ Offset lưu trong BP và địa chỉ đoạn lưu trong ES vào AX. EX2 :... định vị bằng thanh ghi, bằng giá trị tức thời và bằng bộ nhớ. và bằng bộ nhớ. MOV AL, BL ; định vị bằng thanh ghi MOV AL, BL ; định vị bằng thanh ghi INC BX ; định vị bằng thanh ghi INC BX ; định vị bằng thanh ghi Toán hạng là Reg Lệnh sẽ được thực hiện nhanh hôn 2410/ 17/ 12 Chuong 7 Cac phep dinh vi dia chi Ex : Tính tổng 1 array có 5 phần tử Ex : Tính tổng 1 array có 5 phần tử MOV BX, OFFSET... địa chỉ hiệu dụng. 3210/ 17/ 12 Chuong 7 Cac phep dinh vi dia chi Leänh Leänh LEA (Load Effective Address) LEA (Load Effective Address) Cú pháp : LEA REG | MEM ý nghóa : nạp địa chỉ Offset vào thanh ghi để khởi động Reg. Ex : MOV DX, OFFSET MES Tương đương với LEA DX, MES Ex : LEA BX, [1000h] ; BX 1000h LEA SI, [DI][BX][2000h] ; SI DI + BX + 2000h 1510/ 17/ 12 Chuong 7 Cac phep dinh vi dia chi ĐỊNH . 10/ 17/ 1210/ 17/ 12Chuong 7 Cac phep dinh vi dia chiChuong 7 Cac phep dinh vi dia chi1 1Chương 6 : Toán tử – Toán hạng - Chương 6 : Toán tử – Toán hạng - các. năng trên vào vấn đề cần giải Biết vận dụng các kỹ năng trên vào vấn đề cần giải quyết và hiện thực thành chương trình.quyết và hiện thực thành chương trình.Mục