Tài liệu Qtu.vn asm chuong 2 (tieptheo) (1)

  • Số trang: 12 |
  • Loại file: PDF |
  • Lượt xem: 182 |
  • Lượt tải: 0
minhminh

Tham gia: 22/06/2014

Mô tả:

Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị gọi thủ tục Chỉ thị CALL và RET • Chỉ thị CALL: Chuyển điều khiển đến thủ tục bị gọi * Cú pháp: [nhãn] CALL * Thực hiện các công việc: - Giảm nội dung SP bởi 2 - Cất nội dung IP vào Stack - Đưa offset thủ tục bị gọi lên IP • Chỉ thị RET: Chuyển điều khiển trở về chương trình gọi từ thủ tục bị gọi * Cú pháp: [nhãn] RET * Thực hiện các công việc: - Lấy giá trị cũ của IP từ Stack nạp cho IP - Tăng nội dung SP bởi 2 Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị gọi thủ tục Chỉ thị CALL và RET Ví dụ: .CODE BEGIN PROC CALL ... MOV INT BEGIN ENDP B10 PROC CALL .... RET B10 ENDP C10 PROC .... RET C10 ENDP FAR B10 ;gọi thủ tục B10 AX,4CH 21H NEAR C10 ;gọi thủ tục C10 ;trở về vị trí gọi NEAR ;trở về vị trí gọi Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị logic - - Các chỉ thị logic bao gồm: AND, OR, XOR, TEST và NOT Chức năng: Xóa hoặc thiết lập các bit để quản lý dữ liệu ASCII cho các mục đích tính toán số học Cú pháp tổng quát: [nhãn] Chỉ thị (Thanh ghi/từ nhớ),[Thanh ghi/từ nhớ] * Đặc trưng: - AND: Hai bit tương ứng là 1 thì kết quả là 1, ngược lại kết quả là 0 - OR: Một trong 2 bit (Hoặc cả 2 bit) là 1 thì kết quả là 1, ngược lại kết quả là 0 - XOR: Hai bit tương ứng khác nhau kết quả là 1, ngược lại giống nhau thì kết quả là 0 - TEST: Tương tự AND, nhưng không lưu kết quả - NOT: Kết quả là nghịch đảo của các bit Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị logic Ví dụ 1: AL=1100 0101, BH=0101 1100 • Chỉ thị AND: AND AND AL,BH AL,00h ;AL=0100 0100 ;AL=0000 0000 • Chỉ thị OR: OR BH,AL ;BH=1101 1101 • Chỉ thị XOR: XOR AL,AL ;AL=0000 0000 • Chỉ thị TEST: TEST JNZ BL,11000000b ..... ;Kiểm tra có bit nào ;bên trái không? TEST JNZ AL,00000001b ;Có phải AL chứa 1 .... ;số lẻ Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị logic Ví dụ 2: Viết chương trình đổi chữ thường thành chữ HOA Nhận xét: - Chữ HOA từ A  Z có giá trị ASCII từ 41H 5AH - Chữ thường từ a  z có giá trị ASCII từ 61H  7AH - Sự khác nhau duy nhất: Bit thứ 5 (bằng 0 - chữ HOA và bằng 1 - chữ thường) Ví dụ: A= Z= Chữ HOA 0100 0001 0101 1010 a= z= Chữ thường 0110 0001 0111 1010 Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị logic Ví dụ 2: Viết chương trình đổi chữ thường thành chữ HOA Phương pháp: - Sử dụng chỉ thị AND để xóa đi bit số 5  AH=0100 0001 AND AH,11011111b - Mã ví dụ: ;nhập ký tự MOV AH,1 INT 21h ;đổi từ thường qua HOA AND AL,11011111b ;in ra màn hình MOV AH,2 MOV DL,AL INT 21h Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị dịch bit Cú pháp: [nhãn] Chỉ thị dịch 1. - (Thanh ghi/từ nhớ), (CL) Dịch bit sang phải: Chỉ thỉ SHR: Dịch phải logic, sử dụng bit 0 để làm đầy Chỉ thị SAR: Dịch phải số học, sử dụng bit dấu để làm đầy Các bit được định lần lượt đặt vào cờ CF Sử dụng cho phép chia 2: Dịch phải n bit tương đương chia 2n bit Ví dụ: Chỉ thị SHR Chỉ thị SAR MOV MOV SHR SHR MOV MOV SAR SAR CL,3 AL, B7h ;AL=1011 0111 AL,1 ;AL=0101 1011 AL,CL ;AL=0000 1011 CL,3 AL,B7h ;AL=1011 0111 AL,1 ;AL=1101 1011 AL,CL ;AL=1111 1011 Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị dịch bit Cú pháp: [nhãn] Chỉ thị dịch (Thanh ghi/từ nhớ), (CL) 2. Dịch bit sang trái: - Chỉ thỉ SHL,SAL: Dịch trái logic, sử dụng bit 0 để làm đầy và hoạt động như nhau. Các bit được định lần lượt đặt vào cờ CF Sử dụng cho phép nhân 2: Dịch trái n bit tương đương nhân 2n bit Ví dụ: MOV MOV SHL SHL CL,3 AL,B7h AL,1 AL,CL ;AL=1011 0111 ;AL=0110 1110 ;AL=0111 0000 Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị quay bit Cú pháp: [nhãn] Chỉ thị quay (Thanh ghi/từ nhớ), (CL) 1. Quay bit sang phải: - Chỉ thỉ ROR: Quay logic bit sang phải, bit được địch ra ngoài được đưa vào cờ CF và được dùng để làm đầy - Chỉ thị RCR: Quay số học bit sang phải, bit được dịch ra ngoài được đưa vào cờ CF và bit cờ CF được dùng làm đầy Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị quay bit Cú pháp: [nhãn] Chỉ thị quay (Thanh ghi/từ nhớ), (CL) 1. Quay bit sang phải: Ví dụ 1: Ví dụ 2: MOV MOV ROR ROR CL,3 BH,B7h BH,1 BH,CL MOV MOV RCR CL,3 BH,B7h BH,1 RCR BH,CL ;BH=1011 0111 ;BH=1101 1011 ;BH=0111 1011 ;BH=1011 0111 ;BH=0101 1011 (CF=0) ;BH=1101 1011 (CF=1) ;BH=1110 1011 (CF=0) ;BH=1111 1011 (CF=1) Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị quay bit Cú pháp: [nhãn] Chỉ thị quay (Thanh ghi/từ nhớ), (CL) 2. Quay bit sang trái: - Chỉ thỉ ROL: Quay logic bit sang trái, bit được địch ra ngoài được đưa vào cờ CF và được dùng để làm đầy - Chỉ thị RCL: Quay số học bit sang trái, bit được dịch ra ngoài được đưa vào cờ CF và bit cờ CF được dùng làm đầy Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN Các chỉ thị quay bit Cú pháp: [nhãn] Chỉ thị quay (Thanh ghi/từ nhớ), (CL) 2. Quay bit sang trái: Ví dụ 1: Ví dụ 2: MOV MOV ROL ROL CL,3 BH,B7h BH,1 BH,CL MOV MOV RCL CL,3 BH,B7h BH,1 RCL BH,CL ;BH=1011 0111 ;BH=0110 1111 ;BH=0111 0111 ;BH=1011 0111 ;BH=0110 1110 (CF=0) ;BH=0110 1111 (CF=1) ;BH=0111 0101 (CF=0) ;BH=0111 1101 (CF=1)
- Xem thêm -