slide bài giảng lập trình hợp ngữ đại học bách khoa

63 1.4K 0
slide bài giảng lập trình hợp ngữ đại học bách khoa

Đ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

LẬP TRÌNH HỢP NGỮ 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 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 • Nền tảng xây dựng hợp ngữ 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 thuận tiện. • Nền tảng xây dựng các ngôn ngữ cấp cao 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 – Object Oriented – Các dạng khác 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ữ lập trình. 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 – Chạy thử và sửa lỗi 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 • Flow chart – lưu đồ Cấu trúc điều khiển cơ bản If <condition> then Statement; If <condition> then Statement 1 else Statement 2; Case <Value> of value 1 : Statement 1; ……… value n : Statement n; else : Statement 0 end; While <condition> do Statement; Repeat Statement until <condition>; For counter=start value to end value do Statement; For counter=start value downto end value do Statement 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 [...]...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# 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)... chạy một chương trình hợp ngữ là : Dùng một trình soạn thảo văn bản để tạo ra tập tin chương trình nguồn ( source program file ) Dùng một trình biên dịch (Assembler ) để tạo ra tập tin đối tượng (object file) ngôn ngữ máy Dùng trình LINK để liên kết một hoặc nhiều tập tin đối tượng rồi tạo ra file thực thi được Cho thực hiện tập tin EXE hoặc COM Chuyển ngôn ngữ cấp cao thành ngôn ngữ ASM Giả sử A và... của một chương trình hợp ngữ • Một chương trình ngôn ngữ máy bao gồm : – Mã ( code) – Số liệu ( data) – Ngăn xếp (stack ) • Mỗi một phần chiếm một đoạn bộ nhớ Mỗi một đoạn chương trình là được chuyển thành một đoạn bộ nhớ bởi ASM Các kiểu bộ nhớ ( memory models) • Độ lớn của mã và số liệu trong một chương trình được quy định bởi chỉ dẫn MODEL nhằm xác định kiểu bộ nhớ dùng với chương trình Cú pháp... trình đầu tiên model small stack 100h data s DB “Hello !$” code mov AX,@data mov DS, AX ; xuất chuỗi mov DX, OFFSET s mov AH , 9 int 21h mov AH, 4Ch int 21h end ; Khai báo xâu kí tự cần in ; Lấy địa chỉ data segment ghi vào DS ; Lấy địa chỉ offset ghi vào DX ; Gọi hàm 9, ngắt 21h để in ; Thoát khỏi chương trình Tạo ra và chạy một chương trình hợp ngữ • • • • Có 4 bước để tạo ra và chạy một chương trình. .. 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 • Tên không được bắt đầu bằng một số Phân biệt Tên hợp lệ COUNTER1 @CHARACTER SUM_OF_DIGITS DONE? TEST Tên không hợp lệ TWO WORDS 2ABC A45.28 YOU&ME ADD-REPEAT 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) 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 h... ngôn ngữ cấp cao ra ngôn ngữ ASM Mệnh đề B=A MOV AX,A ; đưa A vào AX MOV B,AX ; đưa AX vào B Mệnh đề A=5-A MOV AX,5 ; đưa 5 vào AX SUB AX,A ; AX=5-A MOV A,AX ; A=5-A cách khác : NEG A ;A=-A ADD A,5 ;A=5-A Mệnh đề A=B-2*A MOV AX,B ;Ax=B SUB AX,A ;AX=B-A SUB AX,A ;AX=B-2*A MOV A,AX ;A=B-2*A Cấu trúc của ngôn ngữ cấp cao • Chúng ta sẽ dùng các lệnh nhảy để thực hiện các cấu trúc tương tự như trong ngôn ngữ. .. “ HELLO ” • Các ký tự đều được chuyển thành mã ASCII bởi ASM Do đó trong một chương trình ASM sẽ xem khai báo ‘A’ và 41h ( mã ASCII của A) là giống nhau Các biến ( variables) Trong ASM biến đóng vai trò như trong ngôn ngữ cấp cao Mỗi biến có một loại dữ liệu và nó được gán một địa chỉ bộ nhớ sau khi dịch chương trình PSEUDO-OP STANDS FOR DB DW DD define byte define word ( doublebyte) define doubeword... STACK 100h ; dành 256 bytes cho vùng stack Đoạn mã • Đoạn mã chứa các lệnh của chương trình Bắt đầu đoạn mã bằng chỉ dẫn CODE như sau : CODE • Bên trong đoạn mã các lệnh thường được tổ chức thành thủ tục (procedure) mà cấu trúc của một thủ tục như sau : name PROC ; body of the procedure name ENDP Cấu trúc chương trình MODEL STACK DATA CODE MAIN MAIN END SMALL 100h ; định nghĩa số liệu tại đây PROC... chữ hoa và chữ thường Vì vậy chuỗi ‘abc’ sẽ được chuyển thành 3 bytes : 61h ,62h và 63h • Trong ASM cũng có thể tổ hợp các ký tự và các số trong một định nghĩa Ví dụ : MSG DB ‘HELLO’, 0AH, 0DH, ‘$’ ↔ MSG DB 48H, 45H, 4CH, 4Ch, 4FH, 0AH, 0DH, 24H Các hằng ( constants) • Trong một chương trình các hằng có thể được đặt tên nhờ chỉ dẫn EQU (equates) Cú pháp của EQU là : NAME EQUconstant Ví dụ : LF EQU0AH... 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 – một chỉ dẫn của Assembler ( Assembler directive) : ASM không chuyển thành mã máy Trường Tên ( Name Field) • Trường tên được dùng cho nhãn lệnh , . LẬP TRÌNH HỢP NGỮ 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ữ. 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 – Object Oriented – Các dạng khác 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. ngôn ngữ lập trình. 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

Ngày đăng: 17/10/2014, 07:17

Từ khóa liên quan

Mục lục

  • LẬP TRÌNH HỢP NGỮ

  • Ngôn ngữ lập trình

  • Ngôn ngữ máy - Machine languages

  • Hợp ngữ - Assembly Languages

  • Ngôn ngữ cấp cao

  • Học ngôn ngữ lập trình

  • Chương trình dịch

  • Một số khái niệm khác

  • Cấu trúc điều khiển cơ bản

  • Chu kỳ sống của phần mềm

  • Một số ngôn ngữ lập trình

  • Lập trình hợp ngữ

  • Trường Tên ( Name Field)

  • Phân biệt

  • 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)

  • Chuỗi các ký tự ( character strings)

  • Các hằng ( constants)

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

Tài liệu liên quan