1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng assembler bài 1 giới thiệu assembler

13 270 0

Đ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

Bài giảng Assembler Bài • • CPU: phép toán CPU thu gọn thành bước bản: truy nạp (fetch), giải mã (decode), thi hành (execute) Mỗi bước gồm nhiều bước trung gian Vd: – Truy nạp lệnh kế tiếp: • • – Giải mã lệnh • • – Đặt vùng lưu trữ tên hàng đợi Cập nhật đếm chương trình Thực việc phiên dịch địa Truy nạp toán hạng từ nhớ Thi hành lệnh • • • Thực phép tính yêu cầu Lưu trữ kết nhớ ghi ấn định cờ trạng thái gắn với CPU • • • Bus địa liệu: đường dây song song truyền liệu phần khác CPU Các ghi: khu lưu trữ cao tốc bên CPU, trực tiếp nối với ALU (arithmetic logic unit) CU (control unit) Đồng hồ: phép toán diễn CPU phải đồng hóa đồng hồ Đơn vị: chu kỳ máy chu kỳ đồng hồ (MHz)  Gồm ghi 8, 16, 32 bit  Thanh ghi đa năng: AX, BX, CX, DX  Thanh ghi phân đoạn: CS, SS, DS, ES  Thanh ghi mục: BP, SP, Sl, Di  Thanh ghi tình trạng điều khiển: Flags, IP • • • Các ghi đa dùng để di chuyển số học liệu Mỗi ghi định địa dạng giá trị bit 16 bit Vd: AX ghi 16 bit; bit AH, bit AL Bit AL = bit AX, bit AH = bit AX Các lệnh định địa ghi liệu 16 bit dạng AX, BX, CX, DX liệu bit dạng AH, AL, BH, BL, CH, CL, DH, DL • • • • • VD: chuyển 00010010001101111 vào AX, AL = 01101111, AH = 00010010 AX (accumulator): ghi tích lũy, CPU sử dụng cho phép toán số học BX (base): lưu giữ địa thủ tục biến ghi khác có khả SI, DI BP BX dùng để dịch chuyển số học liệu CX (counter): sử dụng làm đếm để lặp lệnh DX (data): đóng vai trò đặc biệt phép nhân chia VD: nhân, DX lưu 16 bit cao tích • • • • • Sử dụng làm vị trí sở cho lệnh chương trình, liệu ngăn xếp CS (code segment): lưu vị trí sở tất lệnh thi hành chương trình DS (data segment): lưu vị trí mặc định biến CPU tính toán vị trí chúng nhờ dùng giá trị phân đoạn DS SS (stack segment): chứa vị trí sở ngăn xếp ES (extra segment): vị trí sở bổ xung biến nhớ • • • • Chứa độ dịch vị (offset) liệu lệnh Offset khoảng cách biến, nhãn lệnh so với phân đoạn sở BP (base pointer): lưu offset giả định từ ghi SS, giống biến trỏ ngăn xếp Thường chương trình dùng để định vị biến chuyền ngăn xếp chương trình gọi SP (stack pointer): chứa offset đầu ngăn xếp SS SP phối hợp lại để hình thành địa hoàn chỉnh đầu ngăn xếp  SI (source index): trỏ đến chuỗi nguồn  DI (destination index): đích cho lệnh dời chuỗi  IP (instruction pointer): chứa offset lệnh thi hành đoạn mã hành IP CS tổ hợp lại hình thành địa hoàn chỉnh lệnh  Flags: ghi đặc biệt có vị trí bit riêng lẻ gán để nêu trạng thái CPU kết phép toán số học • • • DF (direction): ảnh hưởng đến lệnh chuyển giao liệu theo khối movs, cmps, scas Được điều khiển lệnh STD, CLD IF (interrupt): rõ ngắt hệ thống xảy hay không Điều khiển lệnh CLI, STI Trap (TF): xác định CPU có bị treo hay không sau lệnh Khi cờ ấn định, trình gỡ rối để lập trình viên sử dụng kỹ thuật single step qua lệnh Xác lập lệnh INT • • • • • • Carry (CF): xác lập kết phép tính không dấu lớn, không vừa với đích VD: 200 + 58 lưu trữ AL 8bit > tràn số Overflow (OF): xác lập kết phép tính có dấu rộng (quá nhiều bit) không vừa với đích VD: -128 + (-2) lưu BL 8bit dẫn đến tràn số Sign (SF): ấn định kết phép tính số học logic sinh kết âm Zero (ZF): ấn định kết phép tính số học logic Auxilliary Carry: ấn định phép toán gây phép mang sang (carry) từ bit sang bit phép mượn từ bit sang bit toán hạng Parity: phản ánh số lượng bit kết phép toán Nếu bit chẵn, parity = even, lẻ parity = odd • • • • • • • Intel từ 386 trở có ghi 32 bit Các ghi đoạn 16 bit có bổ sung ghi FS GS Nửa ghi 32 bit tên Đa năng: EAX, EBX, ECX, EDX Chỉ mục: EBP, ESP, ESI, EDI Trạng thái điều khiển: EFLAGS, EIP Ngăn xếp: CS, SS, DS, ES, FS, GS [...]... Sign (SF): ấn định khi kết quả 1 phép tính số học hoặc logic sinh ra kết quả âm Zero (ZF): ấn định khi kết quả 1 phép tính số học hoặc logic là 0 Auxilliary Carry: ấn định khi 1 phép toán gây ra 1 phép mang sang (carry) từ bit 3 sang bit 4 hoặc 1 phép mượn từ bit 4 sang bit 3 của 1 toán hạng Parity: phản ánh số lượng các bit 1 trong kết quả của 1 phép toán Nếu các bit 1 là chẵn, parity = even, nếu lẻ... lệnh Khi cờ được ấn định, 1 trình gỡ rối có thể để lập trình viên sử dụng kỹ thuật single step qua từng lệnh Xác lập bởi lệnh INT 3 • • • • • • Carry (CF): xác lập khi kết quả của 1 phép tính không dấu quá lớn, không vừa với đích VD: 200 + 58 lưu trữ trong AL 8bit > tràn số Overflow (OF): xác lập khi kết quả 1 phép tính có dấu quá rộng (quá nhiều bit) không vừa với đích VD: -12 8 + (-2) lưu trong BL... ánh số lượng các bit 1 trong kết quả của 1 phép toán Nếu các bit 1 là chẵn, parity = even, nếu lẻ parity = odd • • • • • • • Intel từ 386 trở đi đều có các thanh ghi 32 bit Các thanh ghi đoạn vẫn là 16 bit nhưng có bổ sung 2 thanh ghi FS và GS Nửa trên của các thanh ghi 32 bit không có tên Đa năng: EAX, EBX, ECX, EDX Chỉ mục: EBP, ESP, ESI, EDI Trạng thái và điều khiển: EFLAGS, EIP Ngăn xếp: CS, SS, ... DX liệu bit dạng AH, AL, BH, BL, CH, CL, DH, DL • • • • • VD: chuyển 00 010 010 0 011 011 11 vào AX, AL = 011 011 11, AH = 00 010 010 AX (accumulator): ghi tích lũy, CPU sử dụng cho phép toán số học BX... số học liệu Mỗi ghi định địa dạng giá trị bit 16 bit Vd: AX ghi 16 bit; bit AH, bit AL Bit AL = bit AX, bit AH = bit AX Các lệnh định địa ghi liệu 16 bit dạng AX, BX, CX, DX liệu bit dạng AH,... phép toán diễn CPU phải đồng hóa đồng hồ Đơn vị: chu kỳ máy chu kỳ đồng hồ (MHz)  Gồm ghi 8, 16 , 32 bit  Thanh ghi đa năng: AX, BX, CX, DX  Thanh ghi phân đoạn: CS, SS, DS, ES  Thanh ghi

Ngày đăng: 03/12/2015, 19:14

Xem thêm: Bài giảng assembler bài 1 giới thiệu assembler

TỪ KHÓA LIÊN QUAN

w