Kiến trúc máy tính và hợp ngữ

Kiến Trúc Máy Tính 2. Kiểu Định Vị và Cờ 3. Lệnh Nhảy và Lặp 4. Thủ Tục 5. Lệnh Luận Lý và Dịch 6. Lệnh Nhân Chia 7. Lệnh Xử Lý Chuỗi

pdf79 trang | Chia sẻ: longpd | Lượt xem: 3877 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Kiến trúc máy tính và hợp ngữ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KiẾN TRÚC MÁY TÍNH & HỢP NGỮ Nguyễn Minh Tuấn 2NMT - HN - V6.8 - Ch1 - Ns79 - 010806 KTMT & HỢP NGỮ 1. Kiến Trúc Máy Tính 2. Kiểu Định Vị và Cờ 3. Lệnh Nhảy và Lặp 4. Thủ Tục 5. Lệnh Luận Lý và Dịch 6. Lệnh Nhân Chia 7. Lệnh Xử Lý Chuỗi 3NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1. KiẾN TRÚC MÁY TÍNH 1. Kiến Trúc PC 2. CPU 3. Qui Trình Thực Hiện Lệnh 4. Tổ Chức Bộ Nhớ 5. Tổ Chức Thanh Ghi 6. Máy Ngữ và Hợp Ngữ 7. Cách Viết Trình Hợp Ngữ 8. Một Số Lệnh Đơn Giản 9. Chạy Trình Hợp Ngữ 4NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.1. Kiến Trúc PC „ Nhìn từ bên ngoài, PC gồm ba khối: máy chính, màn hình và bàn phím Máy chínhMàn hình Bàn phím 5NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.1. Kiến Trúc PC „ Dạng laptop Màn hình Bàn phím Máy chính 6NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.1. Kiến Trúc PC „ Màn hình: thiết bị xuất thể hiện kết quả dạng hình ảnh. „ Bàn phím: thiết bị nhập dùng đưa dữ liệu vào máy. „ Máy chính: chứa các mạch điện tử chính yếu của máy tính và các thiết bị ngoại vi khác. 7NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.1. Kiến Trúc PC „ Mạch điện tử quan trọng nhất trong máy chính là bảng mạch chính. „ Trên đó có CPU, bộ nhớ và các mạch khác dưới dạng chip. „ Các chip nối với nhau qua đường truyền gọi là Bus. 8NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.1. Kiến Trúc PC „ Bảng mạch chính 9NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.1. Kiến Trúc PC „ CPU 10NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.1. Kiến Trúc PC „ Bộ nhớ 11NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.1. Kiến Trúc PC „ Ngoài các thiết bị ngoại vi như màn hình và bàn phím, hệ thống còn có: ™Chuột ™Các ổ đĩa cứng, mềm ™Các ổ đĩa quang ™Hệ thống xử lý âm thanh (mạch điều khiển và loa) ™Máy in ™Các thiết bị khác 12NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.1. Kiến Trúc PC „ Cách kết nối hệ thống 13NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.1. Kiến Trúc PC „ Cách kết nối hệ thống PC họ Intel 14NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.2. CPU „ Tổ chức CPU Intel 8086 Đơn vị thực hiện (EU) Đơn vị giao tiếp Bus (BIU) 15NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.2. CPU „ Đơn vị thực hiện: thực hiện các lệnh trong chương trình „ ALU: thực hiện các phép tính số học và luận lý „ Thanh ghi AX, … chứa dữ liệu „ Cờ: thanh ghi trạng thái Đơn vị thực hiện (EU) 16NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.2. CPU „ Đơn vị giao tiếp Bus: cầu nối giữa EU và thiết bị nhập xuất „ Gởi địa chỉ, dữ liệu và tín hiệu điều khiển vào các Bus. „ Các thanh ghi chứa địa chỉ. „ IP: địa chỉ lệnh kế Đơn vị giao tiếp Bus (BIU) 17NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.3. Qui Trình Thực Hiện Lệnh „ Lệnh: dãy bit từ 1 đến 6 bai (8086). „ Mỗi CPU bao hàm một tập lệnh cố định „ Lệnh chuyển trị 2 vào thanh ghi AH 1011 0100 0000 0010 (lệnh 2 bai) „ Lệnh cộng thêm vào thanh ghi DL trị 48 1000 0000 1100 0010 0011 0000 (lệnh 3 bai) 18NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.3. Thực Hiện Lệnh „ Qui trình thực hiện lệnh: Nhận lệnh và Thực hiện lệnh „ Nhận lệnh ™Nhận lệnh từ bộ nhớ ™Giải mã lệnh (xác định thao tác thực hiện) ™Nhận dữ liệu từ bộ nhớ (nếu có) „ Thực hiện lệnh ™Thực hiện thao tác trên dữ liệu ™ Lưu kết quả vào bộ nhớ (nếu có) 19NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.3. Thực Hiện Lệnh „ Thời gian thực hiện lệnh tính theo số xung đồng hồ. „ Xung đồng hồ là tín hiệu được tạo ra từ mạch đồng hồ. „ Mạch đồng hồ tạo ra các xung đồng hồ theo một nhịp đều đặn. 20NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.3. Thực Hiện Lệnh „ Khoảng thời gian xung đồng hồ lặp lại gọi là chu kỳ. „ Số chu kỳ trong một giây gọi là tần số. „ Tần số được tính bằng Hertz (Hz). „ Bội số của Hz là MHz, GHz,… „ Hai tần số quan trọng trong hệ thống là tần số của CPU và bảng mạch chính. 21NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.4. Tổ Chức Bộ Nhớ „ Đơn vị nhớ: Byte CPU Số bit địa chỉ Dung lượng nhớ 8086/88, 80186/88 20 1 MB 80286, 80386SX 24 16 MB 80386DX..Pentium 32 4 GB Pentium Pro..P4 36 64 GB Itanium 44 16 TB 22NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.4. Tổ Chức Bộ Nhớ „ Chế độ hoạt động ™Thực (mặc nhiên): bộ nhớ tối đa 1MB ™Bảo vệ: bộ nhớ tối đa 16 MB / 4 GB / 64 GB „ CPU 8086 / 8088 chỉ hoạt động ở chế độ thực. „ CPU 80286 trở lên có thể hoạt động ở cả hai chế độ. 23NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.4. Tổ Chức Bộ Nhớ „ Tổ chức bộ nhớ ở chế độ thực FFFFF 00020 00010 00000 Địa chỉ tuyệt đối 24NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.4. Tổ Chức Bộ Nhớ FFFFF 00020 00010 00000 64KB 64KB 64KB 00000 00010 00020 0000 FFFF Địa chỉ ô Địa chỉ đoạn 0000, 0001, 0002, … đc đoạn : đc ô = địa chỉ tương đối 25NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.5. Tổ Chức Thanh Ghi „ Gồm 4 nhóm: ™Thanh ghi đoạn: CS, DS, ES, SS ™Thanh ghi đa dụng: AX, BX, CX, DX ™Thanh ghi con trỏ và chỉ số: BP, SP, SI, DI ™Thanh ghi cờ và con trỏ lệnh IP 26NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.5. Tổ Chức Thanh Ghi „ CS: địa chỉ đoạn m㠄 DS, ES, FS, GS: địa chỉ đoạn dữ liệu „ SS: địa chỉ đoạn ngăn xếp 15 0 CS DS ES FS GS SS Mà DỮ LIỆU NGĂN XẾP Chương trình 27NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.5. Tổ Chức Thanh Ghi „ AX: Tích lũy „ BX: Cơ sở „ CX: Đếm „ DX: Dữ liệu 31 16 15 8 7 0 EAX AH AL AX EBX BH BL BX ECX CH CL CX EDX DH DL DX 28NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.5. Tổ Chức Thanh Ghi „ SI: Chỉ số nguồn „ DI: Chỉ số đích „ SP: Con trỏ ngăn xếp „ BP: Con trỏ cơ sở 31 16 15 0 ESI SI EDI DI ESP SP EBP BP A B 1 2 3 4 C D Ngăn xếp 12AB 234F 4F30 29NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.5. Tổ Chức Thanh Ghi „ Con trỏ lệnh IP lưu địa chỉ (ô) lệnh sẽ được thực hiện kế tiếp. „ Thanh ghi cờ ghi nhận trạng thái và kết quả hoạt động của hệ thống 30NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.6. Máy Ngữ và Hợp Ngữ Lệnh Dạng Máy Ngữ Dạng Hợp Ngữ 1 B402 MOV AH, 02h 2 80C230 ADD DL, 30h 3 50 PUSH AX Trình nguồn (hợp ngữ) Trình đích (máy ngữ) Trình hợp dịch (Assembly language) (Assembler) (Machine language) 31NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Chương trình hợp ngữ đơn giản .MODEL SMALL ; Kiểu chương trình .STACK ; Khai báo ngăn xếp .DATA ; Phần khai báo dữ liệu ... .CODE ; Phần lệnh ... END ; Lệnh cuối cùng 32NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Lệnh ™ Chỉ thị: lệnh thi hành ™ Chỉ dẫn: hướng dẫn trình dịch „ Dạng lệnh tổng quát ADD AX, BX .MODEL SMALL Tên TácTử TácTố ;GhiChú DoAdd: ADD AX, DX ;AX = AX + DX 33NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Tên ™A…Z, a...z, 0...9, ?, ., @, _, $, % ™ . phải là ký tự đầu tiên (nếu có) ™ không bắt đầu số 0…9 ™ định nghĩa một lần và khác nhau (không phân biệt A…Z, a…z) ™Nhãn: vị trí trong chương trình (có dấu : theo sau), tên thủ tục, địa chỉ vùng nhớ ™Ký hiệu: tên hằng (số, chuỗi) 34NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Tên DoAdd: ADD AX, DX HelloMess DB “Xin chao!” ThuTuc PROC CR EQU 13 Mess EQU “Co tiep tuc khong?” 35NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Tác tử DoAdd: ADD AX, DX HelloMess DB “Xin chao!” 36NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Tác tố DoAdd: ADD AX, DX HelloMess DB “Xin chao!” Array DW 10, 20, 30, 40, 50 INC Word1 37NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Ghi chú DoAdd: ADD AX, DX ;AX = AX + DX ; =================== ; Nhap ky tu ; =================== MOV AH, 1 INT 21h 38NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Số nguyên thập phân ™Byte ¾Có dấu: -128 … 127 ¾Không dấu: 0 … 255 ™Word ¾Có dấu: -32768 … 32767 ¾Không dấu: 0 … 65535 39NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Số nguyên nhị phân không dấu ™Byte: 00000000 – 11111111 (0-255) ™Word: 000…000 – 111…111 (0-65535) „ Đổi số nhị phân sang thập phân 00101011 = 0x27 + 0x26 + 1x25 + 0x24 + 1x23 + 0x22 + 1x21 + 0x20 = 32 + 8 + 2 + 1 = 43 40NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Số nguyên nhị phân có dấu ™Biểu diễn theo dạng bù-2 ™Số bù-2 = số bù-1 + 1 „ Bù-1 (0011 0110) = 1100 1001 „ Bù-2 (0011 0110) = 1100 1010 41NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Số dương 0100100 Bit dấu là 0 Phần còn lại là số không dấu = +36 42NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Số âm = bù-2 (số dương) 0100100 Bit dấu là 1 = +36 1011100 = -36 43NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Một số giá trị nhị phân đặc biệt ™Byte ¾ 0111 1111b = +127d ¾ 1000 0000b = -128d ¾ 1111 1111b = -1d ™Word ¾ 0111 1111 1111 1111b = +32767d ¾ 1000 0000 0000 0000b = -32768d ¾ 1111 1111 1111 1111b = -1d 44NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Số nguyên thập lục 0 0000 8 1000 1 0001 9 1001 2 0010 A 1010 3 0011 B 1011 4 0100 C 1100 5 0101 D 1101 6 0110 E 1110 7 0111 F 1111 1A4Fh = 0001101001001111b = 6735d 8000h = -32768d 7FFFh = +32767d FFFFh = -1d 45NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Ký tự / chuỗi ký tự ‘A’ “A” ‘Hello!’ “Hi!” ”Don’t forget me!” ‘”Forget me not!”’ ’Don’’t forget me!’ 46NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Khai báo vùng nhớ dữ liệu Tên DB Trị1, Trị2,… ; Kiểu Byte Tên DW Trị1, Trị2,… ; Kiểu Word 47NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ B1 DB 5 +0 +1 +2 +3 +4 +5 +6 +7 +8 B1 05 48NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ B2 DB ? +0 +1 +2 +3 +4 +5 +6 +7 +8 B2 49NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ BA1 DB 10, 11, 12 +0 +1 +2 +3 +4 +5 +6 +7 +8 BA1 0A 0B 0C 50NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ W1 DW 10 ; 10 = 000Ah +0 +1 +2 +3 +4 +5 +6 +7 +8 W1 0A 00 51NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ W2 DW 10, 20 ; 000Ah ; 0014h +0 +1 +2 +3 +4 +5 +6 +7 +8 W2 0A 00 14 00 52NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ S1 DB “ABC” +0 +1 +2 +3 +4 +5 +6 +7 +8 S1 41 42 43 53NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ S2 DB 13, 10, ‘Hello!’, 10, ‘$’ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 S2 0D 0A 48 65 6C 6C 6F 21 0A 24 13 10 H e l l o ! 10 $ 54NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ BA2 DB 6 DUP (0) +0 +1 +2 +3 +4 +5 +6 +7 +8 BA2 00 00 00 00 00 00 55NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.7. Cách Viết Trình H.Ngữ „ Định nghĩa hằng số / chuỗi Tên EQU Hằng „ Ví dụ CR EQU 0Dh LF EQU 0Ah MESS EQU ‘Du lieu nhap sai!’ S1 DB CR, LF, MESS, ‘$’ 56NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Sao chép dữ liệu từ Nguồn sang Đích MOV Đích, Nguồn ™Đích, nguồn: vùng nhớ / thanh ghi cùng cỡ ™Nguồn có thể là hằng ™Không đưa hằng vào thanh ghi đoạn ™Đích, Nguồn không là vùng nhớ cùng lúc 57NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Ví dụ MOV AX, BX ; AX ← BX MOV DX, W1 ; DX ← W1 MOV AH, ‘A’ ; AH ← 41h MOV CX, ‘A’ ; CX ← 0041h MOV BX, 12 ; BX ← 000Ch MOV DX, OFFSET Mess ; DX ← đc ô ; (Mess) MOV AX, SEG Mess ; AX ← ; đc đoạn ; (Mess) 58NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Tráo đổi dữ liệu Nguồn với Đích XCHG Đích, Nguồn ™Đích, nguồn: vùng nhớ / thanh ghi cùng cỡ ™Đích, Nguồn không là vùng nhớ cùng lúc 59NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Ví dụ XCHG AX, BX ; AX ↔ BX XCHG DX, W1 ; DX ↔W1 XCHG AL, BL ; AL ↔ BL 60NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Cộng thêm vào Đích một trị Nguồn ADD Đích, Nguồn ™Đích, nguồn: vùng nhớ / thanh ghi cùng cỡ ™Nguồn có thể là hằng ™Đích, Nguồn không là vùng nhớ cùng lúc ™Đích, Nguồn có thể là số nguyên có hoặc không dấu 61NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Ví dụ ADD AX, BX ; AX ← AX + BX ADD DX, W1 ; DX ← DX + W1 ADD DL, 2 ; DL ← DL + 2 MOV AL, 127 ADD AL, 1 ; AL = 128 (không dấu ) ; AL = -128 (có dấu) 62NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Trừ bớt Đích một trị Nguồn SUB Đích, Nguồn ™Đích, nguồn: vùng nhớ / thanh ghi cùng cỡ ™Nguồn có thể là hằng ™Đích, Nguồn không là vùng nhớ cùng lúc ™Đích, Nguồn có thể là số nguyên có hoặc không dấu 63NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Ví dụ SUB AX, BX ; AX ← AX - BX SUB DX, W1 ; DX ← DX – W1 SUB DL, 2 ; DL ← DL - 2 64NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Tăng Đích lên 1 INC Đích ™Đích: vùng nhớ / thanh ghi ™Đích là số nguyên không dấu 65NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Ví dụ INC AX ; AX ← AX + 1 INC W1 ; W1← W1 + 1 INC DL ; DL ← DL + 1 66NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Giảm Đích bớt 1 DEC Đích ™Đích: vùng nhớ / thanh ghi ™Đích là số nguyên không dấu 67NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Ví dụ DEC AX ; AX ← AX - 1 DEC W1 ; W1← W1 - 1 DEC DL ; DL ← DL - 1 68NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Đổi dấu tác tố Đích NEG Đích ™Đích: vùng nhớ / thanh ghi ™Nếu Đích là số âm nhỏ nhất (-128 hoặc −32768) thì trị không đổi khi thực hiện lệnh 69NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Ví dụ NEG AX ; AX ← -AX NEG W1 ; W1 ← -W1 NEG DL ; DL ← -DL MOV BL, -128 ; BL = -128 NEG BL ; BL = -128 MOV CX, -32768 ; CX = -32768 NEG CX ; CX = -32768 70NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Nhập ký tự từ bàn phím và đưa vào AL MOV AH, 1 INT 21h 41A AL MOV AH, 1 INT 21h 71NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Hiển thị ký tự trong DL MOV AH, 2 MOV DL, KyTu INT 21h 3F DL MOV AH, 2 MOV DL, ‘?’ INT 21h ? 72NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Hiển thị chuỗi ký tự MOV AH, 9 ; DS:DX Ö Chuoi MOV BX, SEG Chuoi MOV DS, BX MOV DX, OFFSET Chuoi ; Xuat Chuoi INT 21h 73NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Ví dụ .DATA S DB “Hello!$” .CODE MOV AH, 9 MOV BX, SEG S MOV DS, BX MOV DX, OFFSET S INT 21h 74NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản S H E L L O ! $ DS:DX MOV AH, 9 MOV BX, SEG S MOV DS, BX MOV DX, OFFSET S INT 21h HELLO! S DB ‘HELLO!$’ 75NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.8. Một Số Lệnh Đơn Giản „ Kết thúc MOV AH, 4Ch INT 21h „ Xóa màn hình MOV AX, 3 INT 10h 76NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.9. Chạy Trình Hợp Ngữ „ Qui trình 1. Soạn chương trình (nguồn) 2. Dịch chương trình (nguồn) 3. Liên kết chương trình (đối tượng) 4. Chạy chương trình (đích) 77NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.9. Chạy Trình Hợp Ngữ Trình nguồn mov ax, 2… Trình soạn thảo NotePad… Trình nguồn CT.ASM Trình hợp dịch C > TASM CT Trình liên kết C > TLINK CT Trình đích C > CT Tập đối tượng CT.OBJ Trình đích CT.EXE Kết quả ??? 78NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.9. Chạy Trình Hợp Ngữ „ Chương trình HELLO1.ASM hiển thị câu chào “Xin cha`o!” Xin cha`o! HELLO1.ASM 79NMT - HN - V6.8 - Ch1 - Ns79 - 010806 1.9. Chạy Trình Hợp Ngữ „ Chương trình HELLO2.ASM hiển thị ba câu chào Cha`o Anh! Cha`o Chi.! Cha`o Em! HELLO2.ASM Cha`o Anh! Cha`o Chi.! Cha`o Em!
Tài liệu liên quan