Tài liệu PH ẦN 1: LẬP TRÌNH HỢP NGỮ CHO HỌ x86 doc

16 4.2K 111
Tài liệu PH ẦN 1: LẬP TRÌNH HỢP NGỮ CHO HỌ x86 doc

Đ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

PHẦN 1: LẬP TRÌNH HỢP NGỮ CHO HỌ x86 BÀI 1: CĂN BẢN VỀ HỢP NGỮ MỤC ĐÍCH Làm quen với ngơn ngữ lập trình Assembly Biết cách viết, dịch, chạy vài chương trình đơn giản chương trình mơ Emu8086 TĨM TẮT LÝ THUYẾT Hợp ngữ (assembler) ngôn ngữ bậc thấp, giúp cho người lập trình khơng phải ghi nhớ mã máy (opcode) mà sử dụng từ ngữ gợi nhớ (pseudo-code) gần với ngôn ngữ tự nhiên để miêu tả công việc cần thực Tuy vậy, assembler gần với ngôn ngữ máy, địi hỏi người lập trình phải hiểu biết tương đối đầy đủ cấu trúc phần cứng máy tính Với kiểu kiến trúc vi xử lý, có lệnh riêng, đó, có ngơn ngữ assembler riêng cho Ở đây, nghiên cứu assembler cho vi xử lý Intel thuộc họ x86 Các chương trình viết chương trình mơ Emu8086 Tuy chương trình mơ khơng thể đầy đủ tập lệnh có họ 8086 Ngược lại, chương trình mơ giúp ta tìm hiểu hợp ngữ cách trực quan dễ hiểu 2.1 Cấu trúc thông thường chương trình hợp ngữ viết Emu8086: #make_COM# stack data code ORG 100h ; COM file is loaded at CS:0100h End Chúng ta có bỏ qua khai báo “.model”, “.stack”, “.data”, “.code” “end” chạy chương trình mơ Ví dụ: Chương trình sau in hình dòng chữ “Hello, World!” #make_COM# ; Standard header ORG 100H JMP START ; Jump to start: msg DB 13, 10, 'Hello, World!$‘ ; Data START: LEA DX, msg ; Load address of msg to DX register MOV AH, INT 21h ; Print using DOS interrupt MOV AH, 4Ch INT 21h ; Exit to operating system Lưu ý: - Mọi chương trình phải có đoạn code khỏi chương trình, khơng chương trình khơng dừng hết chương trình 2.2 Khai báo biến hợp ngữ Cú pháp: D D dup() Các kiểu liệu: B (1 byte), W (2 bytes), D (4 bytes) Nếu không khởi tạo, dùng dấu hỏi “?” Ví dụ: Khai báo C char ch; char ch = ‘a’; char ch = 5; char s[]=”\nhello world!” int i=100; long l; char a[] = {1,2,3}; char a[100]; char a[100][50]; Khai báo hợp ngữ ch DB ? ch DB ‘a’ ch DB s DB 10,13,”hello world!$” i DW 100 l DD ? a DB 1,2,3 a DB 100 dup(?) a DB 100 dup(50 dup(?)) 2.3 Dịch, liên kết, chạy chẩn lỗi chương trình từ dấu nhắc DOS Để tạo chương trình dạng com, ta chọn File/New/COM Template hình 1.1 Hình 1.1: Cách tao chương trình Emu8086 Để biên dịch chương trình, ta chọn Compile Ta mơ trực tiếp cách chọn Emulate Màn hình thị lên hình 1.2 Hình 1.2: Giao diện chương trình mơ Trên chương trình mơ phỏng, ta quan sát nội dụng ghi, liệu lưu nhớ, hình, ALU, Stack, ghi cờ… Ngồi ra, ta chạy chương trình (chọn Run) thực lệnh (Single Step) 2.4 Một số lệnh MOV INC DEC ADD SUB INT des,src des des des,src des,src num : chép liệu từ src sang des : tăng des đơn vị : giảm des đơn vị : des = des + src : des = des – src : gọi ngắt THỰC HÀNH 3.1 Bài tập Bài Viết CT nhập vào ký tự, xuất ký tự Ví dụ: Nhap ky tu: b Ky tu vua nhap: b Bài Viết chương trình xuất hình số dịng chữ Ví dụ: Dai hoc Quoc gia Thanh Ho Chi Minh Truong Dai hoc Khoa hoc tu nhien Khoa Dien tu – Vien thong Bài Viết CT nhập vào ký tự, xuất ký tự liền trước liền sau Ví dụ: Moi ban nhap ky tu: b Ky tu lien truoc: a Ky tu lien sau: c Bài Viết CT nhập vào ký tự thường In ký tự Hoa Ví dụ: Moi ban nhap ky tu: b Ky tu hoa la: B Bài Viết CT nhập vào ký tự hoa In ký tự thường Ví dụ: Moi ban nhap ky tu: B Ky tu thuong la: b Bài Viết chương trình nhập vào số nguyên dương x1, x2 (1 ≤ x2 < x1 < 9) Xuất kết phép tính: 3x1 + 5x2 Ví dụ: x1 = x2 = 3x1 + 5X2 = 32 3.2 Hướng dẫn Bài Để nhập ký tự sử dụng hàm ngắt 21h, để xuất, sử dụng hàm Ví dụ: mov AH,1 int 21h ; kết AL mov DL,AL ; kí tự cần xuất DL mov AH,2 int 21h Bài Cặp kí tự xuống dịng 10,13 Có thể khai báo nhiều xâu kí tự chung xâu Ví dụ: Msg1 DB 10,13,9,“ Dai hoc Quoc gia Thanh Ho Chi Minh” Msg2 DB 10,13,9,“ Truong Dai hoc Khoa hoc tu nhien” Hoặc Msg12 Minh” DB 10,13,9,“ Dai hoc Quoc gia Thanh Ho Chi DB 10,13,9,“ Truong Dai hoc Khoa hoc tu nhien” Bài 3, Kí tự hoa kí tự thường chữ tiếng Anh cách 20h Do đó, để chuyển đổi chữ hoa thành chữ thường ngược lại, cần dùng lệnh ADD, SUB Bài Để chuyển đổi kí tự ‘0’ – ‘9’ thành số – cần thực phép trừ 48 (mã ‘0’) Sau thực phép tính, chuyển đổi thành kí tự in hình (có thể dùng biểu diễn Hex) BÀI 2: CÁC CHỈ THỊ LOGIC VÀ ĐIỀU KHIỂN MỤC ĐÍCH Hiểu cách so sánh hai số hợp ngữ Hiểu cách thay đổi thứ tự thực lệnh Biết cách sử dụng lệnh so sánh, nhảy lặp TÓM TẮT LÝ THUYẾT 2.1 Lệnh so sánh Trong hợp ngữ, muốn so sánh hai số, ta phải thực phép toán số học logic hai số vào bit ghi cờ đưa kết luận Để làm việc này, dùng lệnh CMP TEST Bản chất lệnh CMP Des,Src lệnh SUB Des,Src (thực phép tính Des – Src) kết phép tính khơng lưu vào Des lệnh SUB Ví dụ: so sánh hai số nguyên dương MOV AH,1 MOV AL,2 CMP AH,AL Sau thực hai lệnh trên, cờ Carry (CF) bật, báo hiệu AH < AL Bản chất lệnh TEST Des,Src lệnh AND Des,Src (thực phép tính Des AND Src) kết phép tính khơng lưu vào Des lệnh AND Ví dụ: kiểm tra hai bit cuối AL TEST AL,3 ; 3h = 11b Nếu cờ Zero (ZF) bật, có nghĩa hai bit AL 2.2 Lệnh nhảy Thông thường, lệnh (instruction) thực hiện, giá trị ghi IP (instruction pointer) tự động cập nhật để trỏ đến lệnh Ngoài ra, nội dung ghi IP bị thay đổi thơng qua số lệnh đặc biệt Đó là: lệnh nhảy (J*), lệnh lặp (LOOP*), lệnh gọi hàm (call, ret), lệnh gọi ngắt (int, iret) Các lệnh xếp vào nhóm “Lệnh điều khiển luồng” (Program flow control instructions) Trong thực hành này, học cách sử dụng lệnh nhảy lệnh lặp  Lệnh nhảy khơng điều kiện JMP Có trường hợp sau: • JMP SHORT (short jump) Khi mã lệnh lưu byte khoảng cách (offset) vị trí vị trí cần nhảy đến Kiểu nhảy phạm vi từ –128 đến +127 byte so với vị trí Ví dụ: JMP SHORT Calculate • JMP (near jump) Khi mã lệnh lưu byte khoảng cách (offset) vị trí vị trí cần nhảy đến Kiểu nhảy tùy ý phạm vi segment Ví dụ: • • JMP Calculate JMP FAR PTR (far jump) Khi mã lệnh lưu offset segment vị trí cần nhảy đến Kiểu nhảy đến chỗ Ví dụ: JMP FAR PTR Calculate JMP (near indirect jump) Khi mã lệnh lưu địa offset ô nhớ Khi thực hiện, IP gán giá trị lưu địa Có thể kết hợp dùng với định vị số Ví dụ: myPointer DW Prepare, Calculate, Check, Output MOV bx,2 ; số mảng trỏ SHL bx,1 ; nhân đôi JMP myPointer[bx] Prepare: ; công việc Calculate: ; công việc Check: ; công việc – nơi cần nhảy đến Output: ; công việc • JMP (far indirect jump) Tương tự trường hợp trên, trỏ gồm segment offset Chỉ khác khai báo trỏ Ví dụ: myPointer DD Prepare, Calculate, Check, Output MOV bx,1 ; số mảng trỏ MOV cl,2 SHL bx,cl ; nhân JMP myPointer[bx] Prepare: ; công việc Calculate: ; công việc – nơi cần nhảy đến • JMP (indirect jump via regs) Nhảy đến địa lưu ghi AX Ví dụ: MOV ax, offset Calculate JMP ax ; (IP ← AX)  Lệnh nhảy có điều kiện J Các lệnh nhảy có điều kiện bắt đầu chữ J sau chữ biểu thị điều kiện (ví dụ JGE ah,5: Jump if Greater than or Equal, nhảy AH lớn hay 5), tiếp sau tên nhãn Tùy thuộc vào trạng thái cờ hiệu mà vi xử lý có thực việc nhảy đến nhãn hay không Đối với vi xử lý 80286 trở xuống, lệnh nhảy có điều kiện có độ dài byte, byte chứa mã lệnh, byte thứ hai chứa khoảng cách tương đối từ lệnh đến nhãn, lệnh nhảy có điều kiện phải nằm khoảng từ -128 đến 127 so với vị trí lệnh nhảy Muốn nhảy xa ta phải dùng kết hợp lệnh nhảy không điều kiện JMP Từ 80386 trở lên, lệnh bổ sung, cho phép sử dụng lệnh nhảy có điều kiện có độ dài byte, có quyền nằm tùy ý phạm vi segment Khi sử dụng lệnh nhảy có điều kiện sau thực phép so sánh, phải đặc biệt lưu ý toán hạng phép so sánh số có dấu (signed) hay khơng có dấu (unsigned) để lựa chọn lệnh cho phù hợp Ví dụ: MOV AH,AL ; AL 128 CMP AH,1 JGE Greater ; AH > không nhảy ???? Greater: Có ba nhóm lệnh nhảy là: kiểm tra cờ dấu, kiểm tra số có dấu kiểm tra số không dấu Các lệnh nhảy kiểm tra cờ dấu: Các lệnh nhảy kiểm tra số có dấu: Các lệnh nhảy kiểm tra số khơng dấu: Một số lệnh nhảy có điều kiện thường dùng : • JE, JZ (nhảy bằng) • JA (nhảy lớn hơn, không dấu), JG (nhảy lớn hơn, có dấu), JB (nhảy nhỏ hơn, khơng dấu), JL (nhảy nhỏ hơn, có dấu) • JAE (nhảy lớn hay bằng, không dấu), JGE (nhảy lớn hay bằng, có dấu), JBE (nhảy nhỏ hay bằng, không dấu), JLE (nhảy nhỏ hay bằng, có dấu) • JNE, JNZ (nhảy khơng bằng) Ví dụ: AL số ngun khơng dấu đoạn chương trình phải sửa lại sau: MOV AH,AL CMP AH,1 JAE Greater Greater: Lệnh lặp Bằng cách dùng lệnh nhảy tạo vịng lặp Tuy nhiên, để viết chương trình tiện lợi ngắn gọn, dùng thêm lệnh lặp LOOP, LOOPZ,… Lệnh LOOP tự động giảm CX đơn vị, sau kiểm tra xem CX có 0, khơng nhảy đến nhãn Lệnh LOOPZ tự động giảm CX đơn vị, sau kiểm tra xem CX có cờ ZF có bật khơng, hai điều khơng xảy nhảy đến nhãn Ví dụ: Nhập mảng A gồm 10 ký tự MOV MOV SI, CX, 10 ; số mảng ; số lần lặp LAP: ;nhập ký tự MOV AH, INT 21H MOV A[SI], AL INC SI ; xuất ký tự MOV AH, INT 21H LOOP LAP Các lệnh lặp Bài tập Bài Viết chương trình cho nhập ký tự từ hình xuất câu thông báo chào buổi sáng, buổi trưa hay buổi chiều tương ứng với ký tự nhậpvào 'S', 's', 'T', 't', 'C', 'c' Bài Nhập số nguyên dương thuộc N,M thuộc [0 9], nhập ký tự Char Xuất hình ma trận gồm N dịng M cột gồm ký tự Char Ví dụ: N=3, M=4, C='*' ⇒ **** **** **** Bài Nhập số ngun dương A, B Tính A/B, A*B (khơng dùng lệnh DIV, MUL) Ví dụ: A=18, B=3 Tính A/B: 18 - - - - - - = 0, A/B = (tổng số lần A trừ B A = 0) Tính A*B = 18 + 18 + 18 = 54 Bài Tìm USCLN số nguyên dương N, M nhập từ bàn phím Kiểm tra N,M có hai số ngun tố khơng? Ví dụ: N = 15, M = => USCLN(15, 6) = Ví dụ: N = 3, M = => USCLN(3, 5) = => 3, số nguyên tố Bài Dùng lệnh lặp, viết chương trình nhập vào chuỗi ký tự Sau nhập xong đếm xem chuỗi có ký tự Xuất số ký tự có chuỗi Ví dụ: S = "Hello world !" ==> Số kí tự chuỗi 13 Bài Nhập vào chuỗi số, đổi chuỗi thành số, sau cộng hai số, đổi chuỗi xuất chuỗi tổng Ví dụ: S1 = "123" => N1 = 123 S2 = "456" => N2 = 456 N = N1 + N2 = 123 + 456 = 579 => S = "579" (xuất S hình) Bài Viết chương trình cho phép nhập vào chuỗi S Đổi tất ký tự thường thành ký tự hoa Đổi tất ký tự hoa thành ký tự thường Bài Nhập xuất mảng chiều Tìm phần tử max, min, tính tổng phần tử mảng Ví dụ: N=5 A[N] = {3,1,2,7,4} => max = 7, = 1, tổng = 17 Bài Cài đặt thuật toán Bubble Sort dùng ASM Thuật tốn Bubble Sort theo ngơn ngữ C sau: for (int i = 0; i< N-1; i++) for(int j=N-1;j > i; j ) if(a[j] < a[j-1]) Hoan_Vi (a[j], a[j-1]); Bài 10 Nhập xuất mảng A hai chiều a Tính tổng phần tử đường chéo chính, đường chéo phụ b Đếm số phần tử phần tử khác mảng c Tìm phần tử max dịng, cột Tính tổng dịng, cột d Nhập mảng hai chiều B, tạo mảng hai chiều C có phần tử dịng chẵn với phần tử dòng chẵn A, phần tử dòng lẻ phần tử dòng lẻ B Hướng dẫn Bài Xem ví dụ: MODEL SMALL .STACK 100H DATA CBS CBT CBC CODE MOV MOV DB DB DB "CHAO BUOI SANG$" "CHAO BUOI TRUA$" "CHAO BUOI CHIEU$" AX, @DATA DS, AX ;nhập ký tự MOV AH, INT 21H CMP JE AL, 'S' CHAO_BUOI_SANG CMP JE AL, 's' CHAO_BUOI_SANG CMP JE AL, 'T' CHAO_BUOI_TRUA CMP JE AL, 't' CHAO_BUOI_TRUA CMP JE AL, 'C' CHAO_BUOI_CHIEU CMP JE AL, 'c' CHAO_BUOI_CHIEU CHAO_BUOI_SANG: LEA DX, CBS MOV AH,9 INT 21H JMP THOAT CHAO_BUOI_TRUA: LEA DX, CBT MOV AH,9 INT 21H JMP THOAT CHAO_BUOI_CHIEU: LEA DX, CBC MOV AH,9 INT 21H JMP THOAT THOAT: MOV INT AH, 4CH 21H END Bài Để nhập số nguyên, làm sau: nhập xâu kí tự chứa số từ đến 9, sau đổi kí tự số nhân với lũy thừa tương ứng 10 cộng lại Bài Xem ví dụ sau: Lặp gồm vịng lặp (xếp mảng A có N phần tử tăng dần) MOV N, 10 MOV CX, N ;giả sử mảng A gồm N ký tự, ví dụ N=10 DEC MOV CX SI, FOR_I: PUSH MOV MOV MOV CX CX, N DI, DL, A[SI] FOR_J: CMP JB MOV MOV MOV MOV LAP: INC LOOP FOR_J INC POP LOOP FOR_I SI CX DL, A[DI] LAP BL, A[DI] A[DI], DL A[SI], BL DL, A[SI] DI Làm việc với số nguyên Mục đích   Biết sử dụng phép toán logic, số học Biết cách đổi số nhị phân, thập phân thập lục phân Tóm tắt lý thuyết Phép tốn bit NOT : lệnh đổi tác tố đích thành số bù Khơng có cờ bị ảnh hưởng AND (OR XOR) : AND (OR, XOR) Đích, nguồn Tất cờ bị ảnh hưởng Chú ý : AND dùng để xóa bit OR dùng để bật bit XOR dùng để đảo bit Các lệnh dịch bit SHL SHR : dịch bit tốn hạng đích sang trái (hoặc phải) hay nhiều bit SHL (SHR) Đích, SHL (SHR) Đích, CL CL số lần dịch bit.Việc dịch bit trái (phải) tương ứng với phép nhân (chia) cho lũy thừa Chú ý : Hiện tượng tràn số xảy cờ CF chứa bit cuối bị dịch khỏi toán hạng.Để dịch bit với số âm ta nên dùng SAL SAR tương ứng Các lệnh quay ROL ROR : dịch bit tốn hạng đích sang trái (phải) hay nhiều bit theo vịng trịn ROL (ROR) Đích, ROL (ROR) Đích, CL CL số lần quay bit, cờ CF chứa giá trị bit bị dịch khỏi toán hạng Chú ý : Để dịch bit qua cờ nhớ ta dùng RCL RCR tương ứng Ví dụ : Sử dụng lệnh ROL để đếm số bit ghi BX XOR AX,AX MOV CX,16 TOP : ROL BX, JNC NEXT ; kiểm tra có phải bit không INC AX ; tăng số bit NEXT: LOOP TOP ; lặp làm xong Lệnh số học Cộng ADD, ADC : ADD (ADC) đích , nguồn Ví dụ : ADD AL , 10H -> AL = AL + 10H Trừ SUB, SBB : SUB (SBB) đích , nguồn Ví dụ : SUB BL, 10H -> BL = BL – 10H Chú ý : Các phép toán cộng trừ trực tiếp ô nhớ không hợp lệ Ngồi ta sử dụng INC DEC để cộng trừ đơn vị vào nội dung ô nhớ ghi Nhân MUL, IMUL: MUL (IMUL) nguồn Lệnh MUL thực phép nhân khơng dấu, cịn IMUL lệnh nhân có dấu Nếu nguồn byte (8 bit) kết chứa AX AX = AL * nguồn Nếu nguồn word (16 bit) kết chứa DX:AX DX:AX = AX * nguồn Nếu nguồn double (32 bit) kết quà chứa EDX:EAX EDX:EAX = EAX * nguồn Chia DIV, IDIV : DIV (IDIV) số chia Lệnh DIV thực chia không dấu, cịn IDIV lệnh chia có dấu Nếu số chia byte (8 bit) số bị chia AX kết gồm: phần dư = AH, phần thương = AL Nếu số chia word (16 bit) số bị chia DX:AX kết gồm phần dư = DX, phần thương = AX Nếu số chia double sơ bị chia EDX:EAX kết gồm phần dư = EDX, phần thương = EAX Chú ý : phải xoá giá trị DX EDX trước nhân, chia Tài liệu tham khảo Nguyễn Minh Tuấn, Giáo trình hợp ngữ - Chương 7, ĐHKHTN, 2002 Randal Hyde, The art of assembly language programming – Chapter Norton Guide Dan Rollins, TechHelp v.6.0 Bài tập Viết chương trình (VCT) đổi số dạng thập phân sang thập lục phân Ví dụ: Nhập số hệ 10 : 26 Dạng thập lục phân: 1A VCT nhập số hệ thập phân xuất biểu diễn dạng nhị phân Ví dụ: Nhập số hệ 10: 26 Dạng nhị phân: 11010 VCT đổi số dạng thập lục phân sang sang thập phân Ví dụ: Nhập số hệ thập lục phân: 1a (hoặc 1A) Dạng thập phân là: 26 VCT đổi số dạng thập lục phân sang nhị phân Ví dụ: Nhập số hệ thập lục phân: 1a (hoặc 1A) Dạng biểu diễn nhị phân : 00011010 VCT đổi số dạng nhị phân sang thập phân Ví dụ: Nhập số nhị phân: 11010 Dạng thập phân là: 26 VCT đổi số dạng nhị phân sang thập lục phân Ví dụ: Nhập số nhị phân: 11010 Dạng thập lục phân là: 1A VCT “echo” với yêu cầu: nhập vào số nguyên dương n kí tự bất kì, sau hình xuất n lần kí tự Ví dụ: Nhập kí tự: k Nhập số lần n :  Kết : kkkkk VCT nhập vào hai số nguyên dương Tính tổng, hiệu, tích, thương (phép div) phần dư chia số nguyên (phép mod) Ví dụ: Nhập số thứ : 14 Nhập số thứ hai : 16 Tổng hai số : 30 Hiệu: -2 Tích: 224 Thương: Phần dư: 14 BÀI 3: LỆNH LOGIC VÀ SỐ HỌC BÀI 4: LẬP TRÌNH ĐIỀU KHIỂN CÁC THIẾT BỊ ẢO (VI) ... số ph? ??n tử ph? ??n tử khác mảng c Tìm ph? ??n tử max dịng, cột Tính tổng dòng, cột d Nhập mảng hai chiều B, tạo mảng hai chiều C có ph? ??n tử dòng chẵn với ph? ??n tử dòng chẵn A, ph? ??n tử dòng lẻ ph? ??n tử... kết gồm: ph? ??n dư = AH, ph? ??n thương = AL Nếu số chia word (16 bit) số bị chia DX:AX kết gồm ph? ??n dư = DX, ph? ??n thương = AX Nếu số chia double sơ bị chia EDX:EAX kết gồm ph? ??n dư = EDX, ph? ??n thương... thương (ph? ?p div) ph? ??n dư chia số nguyên (ph? ?p mod) Ví dụ: Nhập số thứ : 14 Nhập số thứ hai : 16 Tổng hai số : 30 Hiệu: -2 Tích: 224 Thương: Ph? ??n dư: 14 BÀI 3: LỆNH LOGIC VÀ SỐ HỌC BÀI 4: LẬP TRÌNH

Ngày đăng: 25/01/2014, 14:20

Hình ảnh liên quan

Hình 1.1: Cách tao chương trình trên Emu8086 - Tài liệu PH ẦN 1: LẬP TRÌNH HỢP NGỮ CHO HỌ x86 doc

Hình 1.1.

Cách tao chương trình trên Emu8086 Xem tại trang 2 của tài liệu.
Để tạo một chương trình dạng .com, ta chọn File/New/COM Template như hình 1.1 - Tài liệu PH ẦN 1: LẬP TRÌNH HỢP NGỮ CHO HỌ x86 doc

t.

ạo một chương trình dạng .com, ta chọn File/New/COM Template như hình 1.1 Xem tại trang 2 của tài liệu.
Hình 1.2: Giao diện chương trình mô phỏng - Tài liệu PH ẦN 1: LẬP TRÌNH HỢP NGỮ CHO HỌ x86 doc

Hình 1.2.

Giao diện chương trình mô phỏng Xem tại trang 3 của tài liệu.
Bài 1. Viết chương trình cho nhập 1 ký tự từ màn hình và xuất câu thông báo chào buổi sáng, buổi trưa hay buổi chiều tương ứng với ký tự nhậpvào là 'S', 's', 'T', 't', 'C', 'c'. - Tài liệu PH ẦN 1: LẬP TRÌNH HỢP NGỮ CHO HỌ x86 doc

i.

1. Viết chương trình cho nhập 1 ký tự từ màn hình và xuất câu thông báo chào buổi sáng, buổi trưa hay buổi chiều tương ứng với ký tự nhậpvào là 'S', 's', 'T', 't', 'C', 'c' Xem tại trang 9 của tài liệu.

Mục lục

  • PHẦN 1: LẬP TRÌNH HỢP NGỮ CHO HỌ x86

  • BÀI 1: CĂN BẢN VỀ HỢP NGỮ

    • 2. TÓM TẮT LÝ THUYẾT

    • 3. THỰC HÀNH

    • 3.2. Hướng dẫn

    • 1. MỤC ĐÍCH

    • Bài tập

    • Hướng dẫn

    • Làm việc với số nguyên

      • Mục đích

      • Tóm tắt lý thuyết

      • Tài liệu tham khảo

      • Bài tập

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

Tài liệu liên quan