Tài liệu tham khỏa: Lập trình hợp ngữ

Chia sẻ: Trần Văn Tài | Ngày: | Loại File: PPT | Số trang:109

0
460
lượt xem
245
download

Tài liệu tham khỏa: Lập trình hợp ngữ

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Lập trình hợp ngữ là ngôn ngữ bậc thấp Các VXL chỉ làm việc với các chỉ thị lệnh ở dạng nhị phân và đang ở trong bộ nhớ chính của hệ thống vi xử lý. Các ngôn ngữ bậc cao (chỉ mang tính tương đối ) như Pascal, C, java,... dễ hiểu và dễ viết tuy nhiên 1 chương trình ở ngôn ngữ bậc cao ngắn gọn có thể tạo ra 1 chương trình ở dạng nhị phân chiếm nhiều không gian ở bộ nhớ chính và chương trình được thực hiện chậm hơn....

Chủ đề:
Lưu

Nội dung Text: Tài liệu tham khỏa: Lập trình hợp ngữ

  1. LẬP TRÌNH HỢP NGỮ
  2. Ngôn ngữ lập trình • Ngôn ngữ lập trình – Phương tiện để viết chương trình cho  máy tính – Hàng trăm ngôn ngữ lập trình khác  nhau – Những quy định về cú pháp (syntax) &  ngữ nghĩa (semantic) – Máy tính có thể hiểu được • Phân chia làm 3 nhóm chính – Ngôn ngữ máy ­ Machine languages • Ngôn ngữ duy nhất của máy tính ­ CPU – Hợp ngữ ­ Assembly languages – Ngôn ngữ cấp cao ­ High­level  languages
  3. Ngôn ngữ máy ­ Machine  languages • Ngôn ngữ duy nhất được máy tính  (CPU) hiểu trực tiếp. • Được xác định bởi tập lệnh của  CPU – Phụ thuộc vào máy tính cụ thể – Dạng nhị phân {0,1}* – Rất khó đọc hiểu – Khó có khả năng viết chương trình  trực tiếp • Khó nhớ hàng chục ngàn lệnh dạng {0,1}* • Rất khó xác định & sửa lỗi • Không được sử dụng trong thực tế  để viết chương trình
  4. Hợp ngữ ­ Assembly  Languages • Sử dụng các từ khóa tiếng Anh cho  các lệnh hay nhóm lệnh của mã  máy. • Được dịch sang mã máy khi thực  hiện • Chuyển đỗi nhanh chóng • Dễ đọc và dễ hiểu hơn • Vẫn tương đối khó sử dụng do – Các lệnh còn đơn giản nên phải dùng  nhiều lệnh. – Chưa có những cấu trúc điều khiển  thuận tiện – Khả năng tìm và sửa lỗi cũng chưa 
  5. Ngôn ngữ cấp cao • Một câu lệnh diễn tả nhiều  động thái • Có cấu trúc ngày càng giống  ngôn ngữ tự nhiên (tiếng Anh) • Được dịch sang assembly hay mã  máy bằng các chương trình dịch  trước khi thực thi. – Source code & Executed code • Được phân làm nhiều lớp – Lập trình goto – Lập trình cấu trúc – Structured – Lập trình hướng đối tượng – 
  6. Học ngôn ngữ lập trình • Học ngữ pháp – Quy tắc ngữ pháp – Từ vựng – Cấu trúc câu • Ngữ nghĩa của các lệnh • Các “thành ngữ”  • Học ngôn ngữ lập trình VS. Học ngôn ngữ  tự nhiên – Quy tắc ngữ pháp đơn giản – Từ vựng ít, tự quy định – Cấu trúc câu đơn giản • Hạn chế và khó khăn của sử dụng ngôn ngữ 
  7. Chương trình dịch • Dùng để dịch từ một ngôn ngữ lập trình này  sang ngôn ngữ lập trình khác • Mục tiêu cuối cùng là dịch sang mã máy để  có được executed code –> chương trình  thực thi • Phân loại: – Intepreter – thông dịch – Compiler – biên dịch – Intepreter vs. Compiler • Công cụ phát triển – Integrated Development  Environment (IDE) – Soạn thảo – Dịch và sửa lỗi chương trình
  8. Một số khái niệm khác • Lỗi và sửa lỗi – Syntax  error – lỗi ngữ pháp – Semantic error­ lỗi ngữ nghĩa – Runtime error ­  Lỗi thực thi • Debug – Tìm và sửa lỗi • Dữ liệu, kiểu dữ liệu – Các kiểu dữ liệu cơ bản • integer, long, character, byte, …. • Real (double, float) • Kiểu khác: string  – Kiểu dữ liệu có cấu trúc: array,  string, record,.. • Biến (Variable) & Hằng (Constant) • Giải thuật: khái niệm, công cụ biểu diễn
  9. Cấu trúc điều khiển cơ  bả n If  then Statement; If  then Statement 1  else Statement 2;  Case  of   value 1 : Statement 1; ……….. value n : Statement n; else  : Statement 0 end; While  do Statement; Repeat Statement until ; For counter=start value to end value do  Statement; For counter=start value downto end value do 
  10. Chu kỳ sống của phần  mềm • Thu thập yêu cầu • Phân tích thiết kế • Phát triển chương trình ­ codeing  – Xác định giải thuật – Viết code và dịch thử , hiệu chỉnh các  lỗi syntax • Thử nghiệm ­ Testing – Chạy thử với các dữ liệu mẫu để kiểm  tra lỗi semantic và runtime • Vận hành và bảo trì • Phát triển theo yêu cầu
  11. Một số ngôn ngữ lập  trình • Lập trình goto – Assembly – Basic • Lập trình cấu trúc – Pascal, C – Foxpro • Lập trình hướng đối tượng – Java, C++, Object Pascal,… • Khác – Prolog, LISP, Visual basic (VB), VC++, J++,  Delphi, ASP, PHP,.. – Visual studio .NET: VB.NET, ASP.NET, C+ +.NET, C#
  12. Lập trình hợp ngữ • Một chương trình hợp ngữ bao gồm  một loạt các mệnh đề  ( statement) được viết liên tiếp  nhau , mỗi mệnh đề được viết  trên 1 dòng • Một mệnh đề có thể là : – một lệnh ( instruction) : được  trình biên dịch  ( Assembler =ASM) chuyển thành  mã máy.
  13. Trường Tên ( Name  • Field)  Trường tên được dùng cho nhãn  lệnh , tên thủ tục và tên biến .  ASM sẽ chuyển tên thành địa chỉ  bộ nhớ . • Tên có thể dài từ 1 đến 31 ký tự  . Trong tên chứa các ký tự từ a­ z , các số và các ký tự đặc biệt  sau : ? ,@ , _ , $ và dấu .  • Không được phép có ký tự trống  trong phần tên. Nếu trong tên có  ký tự thì nó phải là ký tự  đầu  tiên. 
  14. Phân biệt      Tên hợp lệ       Tên  không hợp lệ      COUNTER1 TWO WORDS     @CHARACTER 2ABC     SUM_OF_DIGITS A45.28     DONE? YOU&ME     .TEST ADD­ REPEAT
  15. Các kiểu số liệu trong  chương trình hợp ngữ  • Các số  • Các ký tự  • Các biến ( variables) 
  16. Nhắc lại phương pháp định  • Tức thời (trực hằng) địa chỉ – Toán hạng trong lệnh • Thanh ghi – Toán hạng trong thanh ghi • Trực tiếp – Địa chỉ trong lệnh là địa chỉ ô nhớ của toán hạng • Gián tiếp qua thanh ghi – Thanh ghi chứa địa chỉ ô nhớ của toán hạng • Gián tiếp ô nhớ – Địa chỉ trong lệnh là địa chỉ ô nhớ của toán hạng • Chỉ số (dịch chuyển) – Địa chỉ toán hạng là tổng nội dung thanh ghi và độ dời • Tương đối – Tổng nội dung PC và độ dời • Stack – Thanh ghi SP chứa địa chỉ ô nhớ của toán hạng
  17. Thanh ghi CPU 8086 • 14 thanh ghi 16 bit  • 5 nhóm – Thanh ghi đoạn • CS (code segment), DS (data segment),  SS (stack segment),  ES (extra segment) – Thanh ghi con trỏ  • IP (instruction pointer), SP (stack pointer),  BP (base pointer) – Thanh ghi chỉ số • SI (source index), DI (Destination index) – Thanh ghi đa dụng – Thanh ghi cờ
  18. Thanh ghi đa dụng • AX (Accumulator register) – Sử dụng cho tính toán và xuất nhập • BX (Base register) – Thanh ghi duy nhất có thể sử dụng chỉ số • CX (Counter register) – Sử dụng cho vòng lặp • DX (Data register) – Sử dụng cho xuất nhập và các lệnh nhân chia • Các thanh ghi đa dụng có thể “chia nhỏ” thành 2 thanh ghi 8-bit (cao và thấp) – AH,AL,BH,BL,CH,CL,DH,DL
  19. Thanh ghi cờ (Flag) Flags Register Tắt Tên bit n “Mô tả” OF Overflow 11 Tràn số có dấu DF Direction 10 Hướng xử lý chuỗi IF Interrupt 9 Cho phép ngắt TF Trap 8 CPU thực hiện từng bước SF Sign 7 Kiểm tra kết quả là số âm ZF Zero 6 Kiểm tra kết quả bằng 0 AF Auxiliary Carry 4 PF Parity 2 Kiểm tra số bit 1 chẵn CF Carry 0 Tràn số không dấu
  20. Các số  • Một số nhị phân là một dãy các bit 0 và 1 và 2 phải kết thúc bằng b  hoặc B Ví dụ: 10111b, 11111b • Một số thập phân là một dãy các  chữ só thập phân và kết thúc bởi  d hoặc D ( có thể không cần)   Ví dụ: 64223, ­2183d • Một số hex phải bắt đầu bởi 1 chữ số thập phân  và phải kết thúc  
Đồng bộ tài khoản