intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Hợp ngữ - ĐH Thủy lợi

Chia sẻ: Thangnamvoiva25 Thangnamvoiva25 | Ngày: | Loại File: PDF | Số trang:110

88
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Hợp ngữ có cấu trúc gồm 9 chương cung cấp cho người học các kiến thức: Các khái niệm cơ bản, các lệnh cơ bản của hợp ngữ, các lệnh nhảy, các lệnh logic, dịch và quay, các lệnh nhân và chia, ngăn xếp và thủ tục, mảng và các lệnh thao tác chuỗi, sử dụng ngắt trong hợp ngữ, một số vấn đề mở rộng. mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Hợp ngữ - ĐH Thủy lợi

MỤC LỤC<br /> CÁC TỪ VIẾT TẮT............................................................................................................ 4<br /> CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN ......................................................................... 5<br /> 1.1 Mở đầu ....................................................................................................................... 5<br /> 1.2 Biểu diễn số và kí tự trong máy tính .......................................................................... 5<br /> 1.2.1 Một số hệ đếm ..................................................................................................... 5<br /> 1.2.2 Biểu diễn số nguyên trong máy tính.................................................................... 8<br /> 1.2.3 Biểu diễn kí tự trong máy tính........................................................................... 10<br /> 1.3 Tổ chức của máy tính ............................................................................................... 11<br /> 1.3.1 Sơ đồ hệ thống máy tính.................................................................................... 11<br /> 1.3.2 Bộ vi xử lý - CPU .............................................................................................. 12<br /> 1.3.3 Tổ chức bộ nhớ trong ........................................................................................ 14<br /> BÀI TẬP CHƯƠNG I.................................................................................................... 17<br /> CHƯƠNG II: CÁC LỆNH CƠ BẢN CỦA HỢP NGỮ .................................................... 18<br /> 2.1 Cấu trúc chương trình............................................................................................... 18<br /> 2.1.1 Ví dụ .................................................................................................................. 18<br /> 2.1.2 Giải thích ........................................................................................................... 18<br /> 2.2 Một số lệnh thường dùng ........................................................................................ 20<br /> 2.2.1 Cấu trúc câu lệnh hợp ngữ................................................................................. 20<br /> 2.2.2 Một số lệnh thường dùng................................................................................... 21<br /> 2.3 Nhập xuất dữ liệu ..................................................................................................... 23<br /> 2.3.1 Chương trình ngắt.............................................................................................. 23<br /> 2.3.2 Chức năng nhập - xuất của ngắt 21h ................................................................. 23<br /> 2.4 Cách chạy một chương trình hợp ngữ...................................................................... 26<br /> BÀI TẬP CHƯƠNG II .................................................................................................. 28<br /> CHƯƠNG III: CÁC LỆNH NHẢY................................................................................... 29<br /> 3.1 Thanh ghi cờ và các cờ trạng thái ............................................................................ 29<br /> 3.1.1 Cờ nhớ CF ......................................................................................................... 29<br /> 3.1.2 Cờ Zero ZF ........................................................................................................ 30<br /> 3.1.3 Cờ tràn OF ......................................................................................................... 30<br /> 3.2 Các lệnh nhảy có điều kiện ...................................................................................... 30<br /> 3.2.1 Ví dụ .................................................................................................................. 30<br /> 3.2.2 Một số lệnh nhảy ............................................................................................... 31<br /> 3.3 Lệnh nhảy không điều kiện JMP.............................................................................. 33<br /> 3.4 Một số ứng dụng của lệnh nhảy ............................................................................... 34<br /> 3.4.1 Cấu trúc rẽ nhánh If........................................................................................... 34<br /> 3.4.2 Cấu trúc lặp........................................................................................................ 35<br /> BÀI TẬP CHƯƠNG III ................................................................................................. 39<br /> 1<br /> <br /> CHƯƠNG IV: CÁC LỆNH LOGIC, DỊCH VÀ QUAY .................................................. 40<br /> 4.1 Các lệnh logic........................................................................................................... 40<br /> 4.1.1 Các phép toán logic ........................................................................................... 40<br /> 4.1.2 Các lệnh logic trong hợp ngữ ............................................................................ 41<br /> 4.1.3 Ứng dụng các lệnh logic.................................................................................... 42<br /> 4.2 Các lệnh dịch............................................................................................................ 43<br /> 4.2.1 Các phép toán dịch ............................................................................................ 43<br /> 4.2.2 Các lệnh dịch trong hợp ngữ ............................................................................. 43<br /> 4.3 Các lệnh quay ........................................................................................................... 45<br /> 4.3.1 Lệnh quay trái (ROL - Rotate Left)................................................................... 45<br /> 4.3.2 Lệnh quay phải (ROR - Rotate Right)............................................................... 45<br /> 4.3.3 Lệnh quay trái qua cờ CF (RCL – Rotate Carry Left) ...................................... 46<br /> 4.3.4 Lệnh quay phải qua cờ CF (RCR – Rotate Carry Right) .................................. 46<br /> BÀI TẬP CHƯƠNG IV................................................................................................. 48<br /> CHƯƠNG V: CÁC LỆNH NHÂN VÀ CHIA .................................................................. 49<br /> 5.1 Các lệnh nhân ........................................................................................................... 49<br /> 5.1.1 Lệnh MUL (Multiply) ....................................................................................... 49<br /> 5.1.2 Lệnh IMUL (Integer Multiply).......................................................................... 50<br /> 5.2 Các lệnh chia (Divide) ............................................................................................. 50<br /> 5.2.1 Cú pháp lệnh...................................................................................................... 50<br /> 5.2.2 Hiện tượng tràn trong phép chia........................................................................ 51<br /> BÀI TẬP CHƯƠNG V .................................................................................................. 53<br /> CHƯƠNG VI: NGĂN XẾP VÀ THỦ TỤC...................................................................... 54<br /> 6.1 Các thành phần của chương trình............................................................................. 54<br /> 6.2 Cách sử dụng ngăn xếp ............................................................................................ 54<br /> 6.2.1 Cất dữ liệu vào ngăn xếp ................................................................................... 54<br /> 6.2.2 Lấy dữ liệu khỏi ngăn xếp ................................................................................. 55<br /> 6.2.3 Ứng dụng của ngăn xếp..................................................................................... 55<br /> 6.2.4 Cách thức làm việc của ngăn xếp ...................................................................... 57<br /> 6.3 Thủ tục...................................................................................................................... 60<br /> 6.3.1 Cấu trúc thủ tục ................................................................................................. 60<br /> 6.3.2 Sử dụng thủ tục.................................................................................................. 60<br /> 6.3.3 Quan hệ giữa thủ tục và ngăn xếp ..................................................................... 62<br /> BÀI TẬP CHƯƠNG VI................................................................................................. 64<br /> CHƯƠNG VII: MẢNG VÀ CÁC LỆNH THAO TÁC CHUỖI....................................... 65<br /> 7.1 Mảng một chiều (chuỗi) ........................................................................................... 65<br /> 7.1.1 Khai báo mảng................................................................................................... 65<br /> 7.1.2 Các phần tử của mảng một chiều ...................................................................... 66<br /> 7.1.3 Các chế độ địa chỉ.............................................................................................. 67<br /> 2<br /> <br /> 7.2 Các lệnh thao tác với chuỗi ...................................................................................... 69<br /> 7.2.1 Lệnh chuyển chuỗi (Moving a String) .............................................................. 69<br /> 7.2.2 Lệnh chuyển dữ liệu từ thanh ghi vào chuỗi (Store a String) ........................... 73<br /> 7.2.3 Lệnh chuyển dữ liệu từ chuỗi vào thanh ghi (Load a String)............................ 75<br /> BÀI TẬP CHƯƠNG VII ............................................................................................... 77<br /> CHƯƠNG VIII: SỬ DỤNG NGẮT TRONG HỢP NGỮ ................................................ 78<br /> 8.1 Khái niệm ngắt ......................................................................................................... 78<br /> 8.2 Phân loại ngắt ........................................................................................................... 79<br /> 8.2.1 Ngắt mềm .......................................................................................................... 79<br /> 8.2.2 Ngắt cứng .......................................................................................................... 79<br /> 8.3 Một số ngắt thông dụng............................................................................................ 79<br /> 8.3.1 Ngắt 17h – Vào/ra máy in ................................................................................. 80<br /> 8.3.2 Ngắt 21h ............................................................................................................ 81<br /> 8.4 Bảng vector ngắt....................................................................................................... 85<br /> BÀI TẬP CHƯƠNG VIII .............................................................................................. 87<br /> CHƯƠNG IX: MỘT SỐ VẤN ĐỀ MỞ RỘNG ................................................................ 88<br /> 9.1 Số nguyên 32 bit....................................................................................................... 88<br /> 9.1.1 Các phép toán Cộng và Trừ............................................................................... 88<br /> 9.1.2 Các phép Logic.................................................................................................. 89<br /> 9.1.3 Các phép toán Dịch ........................................................................................... 90<br /> 9.2 Số thực dấu phảy động ............................................................................................. 91<br /> 9.2.1 Biểu diễn số thực dưới dạng nhị phân............................................................... 91<br /> 9.2.2 Biểu diễn số thực dấu phảy động ...................................................................... 92<br /> 9.3 Bộ vi xử lý 80286..................................................................................................... 93<br /> 9.3.1 Các đặc trưng..................................................................................................... 93<br /> 9.3.2 Một số lệnh mở rộng của 80286........................................................................ 94<br /> 9.4 Các bộ vi xử lý 80386 và 80486 .............................................................................. 95<br /> BÀI TẬP CHƯƠNG IX................................................................................................. 97<br /> PHỤ LỤC 1: CHƯƠNG TRÌNH DEBUG ........................................................................ 98<br /> 1. Giới thiệu chương trình .............................................................................................. 98<br /> 2. Sử dụng chương trình................................................................................................. 98<br /> 3. Các lệnh của DEBUG ................................................................................................ 98<br /> 4. Dùng Debug để kiểm soát chương trình .................................................................. 101<br /> PHỤ LỤC 2: BẢNG MÃ ASCII ..................................................................................... 108<br /> TÀI LIỆU THAM KHẢO ............................................................................................... 109<br /> <br /> 3<br /> <br /> CÁC TỪ VIẾT TẮT<br /> Msb<br /> Lsb<br /> ASCII<br /> ALU<br /> CPU<br /> BIOS<br /> DOS<br /> RAM<br /> ROM<br /> MASM<br /> <br /> Most Significant Bit<br /> Least Significant Bit<br /> American Standard Code for Information Interchange<br /> Arithmetic & Logic Unit<br /> Central Processing Unit<br /> Base Input – Output System<br /> Disk Operating System<br /> Random Accessing Memory<br /> Read Only Memory<br /> Microsoft Macro Assembler<br /> <br /> 4<br /> <br /> CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN<br /> 1.1 Mở đầu<br /> Hợp ngữ (Assembly language) là một ngôn ngữ lập trình cấp thấp, mục đích nhằm giao<br /> tiếp trực tiếp với phần cứng của máy tính.<br /> Máy tính chỉ có khả năng hiểu được các tín hiệu 0, 1 dưới dạng điện hoặc từ, gọi là tín<br /> hiệu nhị phân (ngôn ngữ nhị phân còn được gọi là ngôn ngữ máy). Các lệnh của hợp ngữ<br /> thực chất là dạng kí hiệu của ngôn ngữ máy: hợp ngữ sử dụng các kí hiệu bằng tiếng Anh<br /> để biểu diễn các lệnh ngôn ngữ máy cho dễ nhớ hơn. Ví dụ:<br /> Lệnh ngôn ngữ máy<br /> 0010 1010 1011 0100<br /> 0010 0001 1100 1101<br /> <br /> Lệnh hợp ngữ<br /> MOV AH,2Ah<br /> INT 21h<br /> <br /> Ta thấy các lệnh máy tính bằng các dãy bít 0, 1 rất dài và khó nhớ, còn lệnh hợp ngữ<br /> thì ngắn gọn hơn nhiều. Khi chạy một chương trình hợp ngữ thì phải dịch nó sang ngôn<br /> ngữ máy.<br /> Học hợp ngữ, không chỉ để học một ngôn ngữ lập trình có tốc độ rất nhanh (hợp ngữ là<br /> ngôn ngữ lập trình có tốc độ nhanh nhất) mà còn để nắm bắt được bản chất bên trong của<br /> máy tính, biết cách tác động trực tiếp vào phần lõi của máy tính.<br /> 1.2 Biểu diễn số và kí tự trong máy tính<br /> 1.2.1 Một số hệ đếm<br /> a) Hệ thập phân (Decimal) - Hệ đếm cơ số 10<br /> Hệ thập phân sử dụng 10 kí hiệu (0, 1, 2,...9) để biểu diễn thông tin. Các số trong hệ<br /> thập phân được biểu diễn dưới dạng tổng các luỹ thừa cơ số 10.<br /> Ví dụ:<br /> Số 1998 trong hệ thập phân có thể biểu diễn như sau:<br /> (1998)10 = 1×103 + 9×102 + 9×101 + 8×100<br /> Trong hợp ngữ, người ta kí hiệu 1 số thập phân bằng chữ D hoặc d ở cuối (viết tắt của<br /> Decimal), cũng có thể không cần viết các chữ đó.<br /> Ví dụ:<br /> (1998)10 được kí hiệu là: 1998D, 1998d, hoặc đơn giản là 1998<br /> b) Hệ nhị phân (Binary) - Hệ đếm cơ số 2<br /> <br /> 5<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2