So sánh 2 ký tự trong 8086 năm 2024

Thực hành Lập trình Hệ Thống giúp cho sinh viên viết được chương trình bằng ngôn ngữ Assembly trên máy tính PC. Giáo trình này chỉ hướng dẫn sinh viên những kỹ năng rất cơ bản trong việc lập trình bằng Assembly như: Sử dụng trình biên dịch hợp ngữ trong môi trường Windows, biên dịch, sửa lỗi và liên kết, khảo sát tập lệnh, các ngắt đơn giản của Hệ điều hành DOS. Để vận dụng và nâng cao được kỹ năng lập trình hệ thống bằng Hợp ngữ, đòi hỏi sinh viên phải nổ lực rất nhiều trong việc tự học, đọc thêm tài liệu để bổ sung những kiến thức nhất định về phần cứng máy tính cũng như nguyên ly vận hành của các thiết bị ngoại vi có liên quan, như: Máy in, hệ vi điều khiển, cổng vào ra nối tiếp/ song song ....

1

Chương48086 Assembly

Xét đoạn chương trình sau

Int cong (int a, int b){Return (a + b);}Void Main(){Int x=3; int y=4;Printf(“Tong: %d”, cong(x,y));}

Trong chương trình cóhai phần: phần khai báo vàphần lệnh chochương trình. Trong phần lệnh cóthểcóphần gọi chương trình con

•Như vậy đểthực hiện một chương trình (dạng .EXE).Người ta cầnít nhất 3 đoạn bộnhớ (segment). Đoạndành chứa dữliệu được khai báo, đoạn chứa mãchương trình, đoạn ngăn xếp (stack) phục vụgọichương trình con. Mỗi đoạn cókích thước 64K.Khichương trình được thực hiện. Mỗi đoạn bộnhớnàyđược trỏbởi thanh ghi đoạn:•Thanh ghi đoạn mã CS: trỏ đến đoạn bộnhớchứa mãchương trình•Thanh ghi đoạn dữliệu DS: trỏ đến đoạn bộnhớkhaibáo chương trình.•Thanh ghi đoạn ngăn xếp SS: trỏ đến đoạn bộnhớdànhcho stack.•Ngoài ra trong nhiều trường hợp,người ta sửdụng thêmmột đoạn dữliệu phụdùng trong trường hợp các dữliệucần khai báo vượt quákích thước cho phép của mộtđoạn.Khi đóthanh ghi dữliệu ES sẽtrỏ đến

Ngôn ngữmáy (Machine language)

•Mỗi kiến trúc máy tính cómột ngôn ngữmáy riêng. Ngôn ngữmáy làngôn ngữduy nhất máy cóthểhiểu được.•Ngôn ngữmáy làcác mã lệnh, vàviệcghép nối các mã lệnh với dữliệu, địa chỉ…•Việc lập trình bằng ngôn ngữmáy rất khókhăn vàphức tạp•Dùng ngôn ngữcấp cao hơn

Hợp ngữ(Assembly language)

•Đểdễghi nhớ người ta dùng mã giả(mnemonic), tên gọi (label)•Hợp ngữlàngôn ngữmàcác mã lệnh làmã giả, dữliệu hoặc địa chỉlàcác label.Chúng ta ghép nối lại theo một cấu trúc•Vídụmov al, 061h

Trình biên dịch hợp ngữ(assembler)

•Chương trình viết bằng hợp ngữ đượctrình biên dịch (assembler) dịch sang mãmáy đểmáy tính cóthểhiểu.•Với một kiến trúc máy tính cóthểcónhiềutrình biên dịch của nhiều nhàcung cấp,chạy trên nhiều hệ điều hành khác nhau•Vídụvới cùng kiến trúc x86 nhưng cónhiều trình biên dịch: A86, GAS, TASM,MASM, NASM