1 / 35

Đại cương về hợp ngữ

Đại cương về hợp ngữ. GV: Phạm Viết Văn. Nội dung. Giới thiệu về CPU Nhắc lại về thanh ghi (Register) Ngôn ngữ máy và hợp ngữ Cách viết chương trình hợp ngữ Một số lệnh đơn giản. Nội dung. Giới thiệu về CPU Nhắc lại về thanh ghi (Register) Ngôn ngữ máy và hợp ngữ

teneil
Download Presentation

Đại cương về hợp ngữ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Đạicươngvềhợpngữ GV: PhạmViếtVăn Hợp Ngữ

  2. Nội dung • Giớithiệuvề CPU • Nhắclạivềthanhghi (Register) • Ngônngữmáyvàhợpngữ • Cáchviếtchươngtrìnhhợpngữ • Mộtsốlệnhđơngiản Hợp Ngữ

  3. Nội dung • Giớithiệuvề CPU • Nhắclạivềthanhghi (Register) • Ngônngữmáyvàhợpngữ • Cáchviếtchươngtrìnhhợpngữ • Mộtsốlệnhđơngiản Hợp Ngữ

  4. Giớithiệuvề CPU • CPU (Central Processing Unit) • Celeron: Pentium rútgọn • KiếntrúcNetBurst • Pentium II, III, IV, D,… • KiếntrúcCORE (2006) • Core Duo • Core 2 Duo (íttốnđiện, íttỏanhiệthơn) • KiếntrúcNehalem (2007) • Core i3, i5, i7: 4 nhân • Core i9: 6 nhân Hợp Ngữ

  5. Nội dung • Giớithiệuvề CPU • Nhắclạivềthanhghi (Register) • Ngônngữmáyvàhợpngữ • Cáchviếtchươngtrìnhhợpngữ • Mộtsốlệnhđơngiản Hợp Ngữ

  6. Register • Thanhghiđoạn (Segment Register) • Thanhghiđadụng (General Register) • Thanhghi con trỏvàchỉsố (Pointer & index register) • Thanhghicờ Hợp Ngữ

  7. Register (tt) • Thanhghiđoạn (Segment Register) • CS (Code): địachỉđoạnmã • DS, ES (Data, Extra): địachỉđoạndữliệu • SS (Stack): địachỉđoạnngănxếp Hợp Ngữ

  8. Register (tt) • Thanhghiđadụng (General Register) • AX (Accumulator): dùngchoviệc tínhtoánhoặc input/output • BX (Base): thanhghicơsở • CX (Counter):dùngcholệnhlặp • DX (Data): input/output hoặcnhân/chia AX BX CX DX Height  H Low  L Hợp Ngữ

  9. Register (tt) • Thanhghi con trỏvàchỉsố (Pointer & Index Register) • IP (Instruction Pointer): địachỉ (ô) lệnhkếtiếp • SP (Stack Pointer) con trỏngănxếp • BP (Base Pointer): con trỏcơsở • SI: source index • DI: destination index Hợp Ngữ

  10. Register (tt) • Thanhghicờ Hợp Ngữ

  11. Nội dung • Giớithiệuvề CPU • Nhắclạivềthanhghi (Register) • Ngônngữmáyvàhợpngữ • Cáchviếtchươngtrìnhhợpngữ • Mộtsốlệnhđơngiản Hợp Ngữ

  12. Ngônngữmáyvàhợpngữ • Chươngtrình: mộttậplệnhđượcđưavàobộnhớcho CPU thựchiện • Mỗiloại CPU cómộtngônngữmáyriêng. • Vídụ: máyngữtrên Intel 80x86 Hợp Ngữ

  13. Ngônngữmáyvàhợpngữ • Lậptrìnhvớingônngữmáy • Khóviết • Khónhớ • Phảihiểurõtổchứcmáyđangsửdụng ==> Dùnghợpngữ Hợp Ngữ

  14. Nội dung • Giớithiệuvề CPU • Nhắclạivềthanhghi (Register) • Ngônngữmáyvàhợpngữ • Cáchviếtchươngtrìnhhợpngữ • Mộtsốlệnhđơngiản Hợp Ngữ

  15. Cáchviếtchươngtrìnhhợpngữ • Chươngtrìnhhợpngữđơngiản Hợp Ngữ

  16. Cáchviếtchươngtrìnhhợpngữ (tt) Hợp Ngữ

  17. Cáchviếtchươngtrìnhhợpngữ (tt) • Mộtsốloạibộnhớchươngtrình Hợp Ngữ

  18. Cáchviếtchươngtrìnhhợpngữ (tt) • Qui tắcđặttên • Khôngđượcbắtđầubằngsố • Khôngphânbiệthoathường • Khôngđượcchứakítựtrống • Vídụvềđặttênsai Hợp Ngữ

  19. Cáchviếtchươngtrìnhhợpngữ (tt) • Sốnguyênthậpphân 1, -1 307d • Sốnguyênnhịphân 1000b, 00000001b • Sốnguyênthậplụcphân (Hexadecimal) 20E0h, 1F00h FF00h 0FF00h Cóthểcóhoặckhôngcóchữ d Sốthậplụcbắtđầubằngchữphảithêmsố 0 vàophíatrước Hợp Ngữ

  20. Cáchviếtchươngtrìnhhợpngữ (tt) • Cáchviếtkítự / chuỗi • ‘A’ hoặc“A”hoặc41h • “Hello”hoặc“He”, “llo” • ”Don’t forget me” • ‘Don”tforget me’ • Dùngdấuphẩy (,) đểnốichuỗi. • Kítựkếtthúcchuỗi$ Hợp Ngữ

  21. Nội dung • Giớithiệuvề CPU • Nhắclạivềthanhghi (Register) • Ngônngữmáyvàhợpngữ • Cáchviếtchươngtrìnhhợpngữ • Mộtsốlệnhđơngiản Hợp Ngữ

  22. Mộtsốlệnhcơbản (tt) Hợp Ngữ

  23. Mộtsốlệnhcơbản • Khaibáobiếnkiểu byte • Ý nghĩa: khaibáobiếnkiểu byte vớiDB (Define Byte) • Cúpháp: Ten_bienDBGia_tri_khoi_tao • Vídụ: MSG DB10 • Khaibáobiếnkiểu WORD: • Ý nghĩa: khaibáobiếnkiểu word vớiDB (Define Word) • Cúpháp: Ten_bienDWGia_tri_khoi_tao • Vídụ: MSG DW456 Nếugiátrịkhôngxácđịnh dùngdấuchấmhỏi (?) Hợp Ngữ

  24. Mộtsốlệnhcơbản (tt) • KhaibáohằngvớiEQU (equals) • Ý nghĩa: địnhnghĩahằngsố/ chuổi • Cúpháp: Ten_hangEQUgia_tri_hang • Vídụ: LF EQU0Fh Hợp Ngữ

  25. Mộtsốlệnhcơbản (tt) • LệnhMOV (move) • Ý nghĩa: Sao chépdữliệutừnguồn sang đích • Cúpháp: MOVDich, Nguon • Dich, Nguon: vùngnhớ/thanhghi • Nguon: cóthểlàhằng • DichvàNguonkhôngthểlàvùngnhớcùnglúc • Khôngđưahằngvàothanhghiđoạn • Vídụ: MOVDS, BX Hợp Ngữ

  26. Mộtsốlệnhcơbản (tt) • TráođổidữliệuvớiXCHG (exchange) • Ý nghĩa: tráođổidữliệunguồnvớiđích • Cúpháp: XCHGNguon, Dich • Dich, Nguon: vùngnhớ/thanhghicùngkíchcỡ • Dich, Nguon: khôngcùnglàvùngnhớ • Vídụ: XCHG AX, BX Hợp Ngữ

  27. Mộtsốlệnhcơbản (tt) • LệnhcộngADD • Ý nghĩa: cộngthêmvàođíchmộttrịnguồn • Cúpháp: ADDDich, Nguon • Dich, Nguon: vùngnhớ/thanhghicùngkíchcỡ • Nguoncóthểlàhằng • Dich, Nguon: khôngcùnglàvùngnhớ • Vídụ: MOV AL, 9 ADD AL, 2; AL = 11 Hợp Ngữ

  28. Mộtsốlệnhcơbản (tt) • LệnhtrừSUB (subtract)  • Ý nghĩa: trừbớtcủađíchmộttrịnguồn • Cúpháp: SUBDich, Nguon • Dich, Nguon: vùngnhớ/thanhghicùngkíchcỡ • Nguoncóthểlàhằng • Dich, Nguon: khôngcùnglàvùngnhớ • Vídụ: MOV AL, 9 SUB AL, 2 ; AL = 7 Hợp Ngữ

  29. Mộtsốlệnhcơbản (tt) • LệnhtăngINC (increase)  • Ý nghĩa: tăngđíchlên 1 • Cúpháp: INCDich • Dich: vùngnhớ/thanhghi • Dich: sốnguyênkhôngdấu • Vídụ: MOV AL, 9 INC AL ; AL = 10 Hợp Ngữ

  30. Mộtsốlệnhcơbản (tt) • LệnhgiảmDEC (decrease) • Ý nghĩa: giảmđíchbớt 1 • Cúpháp: DECDich • Dich: vùngnhớ/thanhghi • Dich: sốnguyênkhôngdấu • Vídụ: MOV AL, 9 DEC AL ; AL = 8 Hợp Ngữ

  31. Mộtsốlệnhcơbản (tt) • NhậpvàokítựtừbànphímvàđưavàoAL MOV AH, 1 INT21h ;Mãcủakítựnhậpvàosẽđượctựđộnglưu ở thanhghi AL Hợp Ngữ

  32. Mộtsốlệnhcơbản (tt) • HiểnthịmộtkítựtrongDL MOV AH, 2 MOV DL, ‘B‘ INT21h ; Lệnhnàylấykítựtrongthanhghi DL rađểhiểnthị Hợp Ngữ

  33. Mộtsốlệnhcơbản (tt) • Hiểnthịmộtchuỗikítự MOV AH, 9 ;DS : DX => Chuỗi MOV BX, SEGChuoi MOV DS, BX MOV DX, OFFSETChuoi ;Xuấtchuỗi INT21h • MOV BX, @data • LEA DX, Chuoi • (Load Effective Address) Hợp Ngữ

  34. Mộtsốlệnhcơbản (tt) • Lệnhkếtthúc MOV AH, 4Ch INT21h Hợp Ngữ

  35. Chạychươngtrìnhhợpngữ • DùngchươngtrìnhEmu8086 Hợp Ngữ

More Related