SlideShare a Scribd company logo
1 of 32
Chương 9  STACK & CHƯƠNG TRÌNH CON ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],STACK : là một cấu trúc dữ liệu một chiều. Các phần tử cất vào và lấy ra theo phương  thức LIFO (Last In First Out). Mỗi chương trình phải dành ra một khối bộ nhớ để làm  stack  bằng khai báo STACK. Ví dụ :  .STACK  100H  ; Xin cấp phát 256 bytes làm stack  GiỚI THIỆU STACK
LẬP TRÌNH VỚI STACK ,[object Object]
[object Object],[object Object],SS dùng để lưu địa chỉ segemnt của đoạn bộ nhớ dùng làm STACK SP để lưu địa chỉ của ô nhớ đỉnh STACK (trỏ tới đỉnh STACK)
THÍ DỤ SP STACK A,B,C là các Word MOV BP,SP MOV AX,[BP] MOV AX,[BP+2] MOV AX,[BP+6] ;AX = D ;AX = C ;AX = A A B C D
Để lưu 1 phần tử vào Stack ta dùng lệnh PUSH Để lấy 1 phần tử ra từ Stack ta dùng lệnh POP PUSH  nguồn  :  đưa nguồn vào đỉnh STACK  PUSHF  :  cất nội dung thanh ghi cờ vào STACK  ,[object Object]
POP và POPF  :  dùng để lấy một phần tử ra khỏi STACK. Cú pháp :  POP  đích  :  đưa nguồn vào đỉnh STACK  POPF  :  cất nội dung ở đỉnh STACK vào thanh ghi cờ  Chú ý :  - Ở đây đích là một thanh ghi 16 bit (trừ thanh ghi IP) hay một từ nhớ Các lệnh PUSH, PUSHF, POP và POPF không ảnh hưởng tới các cờ
MỘT SỐ ỨNG DỤNG CỦA STACK ,[object Object],[object Object],[object Object]
THÍ DỤ 2 ,[object Object]
Ví dụ minh họa : dùng STACK trong thuật toán đảo ngược thứ tự như sau : ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],CTC làm cho cấu trúc logic của của CT dễ kiểm soát hơn, dễ tìm sai sót hơn và có thể tái sử dụng mã    tiết kiệm được công sức và thời gian lập trình. GiỚI THIỆU CHƯƠNG TRÌNH CON Lợi ích
CẤU TRÚC CỦA CTCON TÊNCTC  PROC  [NEAR|FAR] CÁC LỆNH CỦA CTC RET TÊNCTC  ENDP
[object Object],[object Object],MINH HỌA
THÍ DỤ .DATA EXTRN  MemVar : WORD, Array1 : BYTE , ArrLength :ABS  … .CODE EXTRN NearProc : NEAR , FarProc : FAR …. MOV AX,MemVar MOV BX, OFFSET Array1 MOV CX, ArrLength … CALL NearProc …. CALL FarProc …..
CƠ CHẾ LÀM VIỆC CỦA CTC ,[object Object],   Khi gặp lệnh gọi CTC thì :  . Địa chỉ của lệnh ngay sau lệnh gọi CTC sẽ được đưa vào STACK. . Địa chỉ của CTC được gọi sẽ được nạp vào thanh ghi IP. . Quyền điều khiển của CT sẽ được chuyển giao cho CTC. . CTC sẽ thực hiện các lệnh của nó và khi gặp RET, nó sẽ lấy địa chỉ cất trên STACK ra và nạp lại thanh ghi IP để thực thi lệnh kế tiếp.
PUBLIC  EXTRN  GLOBAL Để thuận lợi trong việc dịch, liên kết chương trình đa file, Assembler cung cấp các điều khiển Public, Extrn và Global. PUBLIC Chỉ cho Assembler biết nhãn (label) nào nằm trong module này được phép sử dụng ở các module khác. Cú pháp : PUBLIC tên nhãn   khai báo nhãn TÊN BiẾN TÊN CTC TÊN ĐI TRƯỚC NHÃN
EXTRN Báo cho Assembler biết những nhãn đã được khai báo PUBLIC ở các module khác được sử dụng trong module này mà không cần phải khai báo lại. Cú pháp : EXTRN Tên nhãn : Kiểu BYTE WORD DATAPTR PROC FAR NEAR DWORD
GLOBAL THAY THẾ PUBLIC VÀ EXTRN. Viết chương trình nằm trên 2 file (2 module) với sự phân công như sau : Module của chương trình chính (Main.ASM) có nhiệm vụ xác định Offset của 2 chuổi ký tự và gọi CTC nối 2 chuổi này và cho hiện kết quả ra màn hình. Module CTC (Sub.ASM) làm nhiệm vụ nối 2 chuổi và đưa vào bộ nhớ.
Ví dụ minh hoạ về STACK, CALL/RET :  chương trình in một số nguyên (16 bit) ra màn hình PrintNum10  PROC  ; số nguyên N nằm trong AX  PUSH  BX  CX  DX  MOV  CX, 0  ; so lan push (so ky tu)  laysodu:   XOR  DX, DX  ;  cho DX = 0 trước khi chia  MOV  BX, 10 DIV  BX  ; số dư trong DX, phần nguyên trong AX PUSH  DX  ; lưu  phần dư vào stack INC  CX CMP  AX, 0  ; đã hết chưa? JNZ  laysodu  ; chưa hết, lấy số dư tiếp MOV  AH, 2  INSO:   POP  DX ADD  DL, '0'  INT  21H  LOOP  inso   POP  DX  CX  BX RET  ENDP  PrintNum10
[object Object],[object Object],[object Object],CHƯƠNG TRÌNH ĐA FILE
VẤN ĐỀ TRUYỀN THAM SỐ  ,[object Object],Có 3 cách truyền tham số Thông qua thanh ghi Thông qua biến toàn cục Thông qua STACK
TRUYỀN THAM SỐ THÔNG QUA THANH GHI ,[object Object],[object Object],[object Object],ĐẶT 1 GIÁ TRỊ NÀO ĐÓ VÀO THANH GHI Ở CTCHÍNH VÀ SAU ĐÓ CTC SẼ SỬ DỤNG GIÁ TRỊ NÀY TRONG THANH GHI.
TRUYỀN THAM SỐ THÔNG QUA BiẾN GLOBAL ,[object Object],[object Object],CÁCH NÀY THƯỜNG ĐƯỢC DÙNG : TRONG 1 CT ViẾT THUẦN TÚY BẰNG ASM ViẾT HỖN HỢP GiỮA ASM VÀ 1 NGÔN NGỮ CẤP CAO
TRUYỀN THAM SỐ QUA STACK ,[object Object],[object Object]
CHUYỂN GIÁ TRỊ TỪ CTCON LÊN CT CHÍNH. ,[object Object],NẾU GIÁ TRỊ TRẢ VỀ LÀ 8 BIT HOẶC 16 BIT (CHO KHAI BÁO CHAR, INT, CON TRỎ GẦN) THÌ GIÁ TRỊ ĐÓ PHẢI ĐƯỢC ĐẶT TRONG THANH GHI AX CỦA HÀM TRƯỚC KHI QUAY VỀ CTCHÍNH.
CHUYỂN GIÁ TRỊ TỪ CTCON LÊN CT CHÍNH. ,[object Object]
[object Object],[object Object],NEAR | FAR báo cho lệnh RET lấy địa chỉ quay về chương trình gọi nó trong STACK.
VẤN ĐỀ BẢO VỆ CÁC THANH GHI ,[object Object],[object Object]
CÁC VÍ DỤ MINH HỌA NHẬP VÀO 1 SỐ HỆ HEX. IN RA SỐ ĐÃ NHẬP VỚI YÊU CẦU SAU : ViẾT CTCON NHẬP SỐ ViẾT CTCON XUẤT SỐ CTCHÍNH GỌI 2 CTCON TRÊN.
LUYỆN TẬP LẬP TRÌNH C10 Bài 1 : Viết chương trình nhập 1 số nguyên n (n<9). Tính giai thừa của n và xuất kết quả ra màn hình dưới dạng số Hex (giới hạn 16 bits). Bài 2 :Viết  chương trình nhap vao 1 chuổi ky tu. Hay in ra man hinh chuổi ky tu vua nhap theo thứ tự đảo (trong mỗi từ đảo từng ký tự). Bài 3 :Viết chương trình kiểm tra một biểu thức đại số có chứa các dấu ngoặc (như (), [] và {}) là hợp lệ hay không hợp lệ .  Ví dụ :  (a + [b – { c * ( d – e ) } ] + f) là hợp lệ nhưng (a + [b – { c * ( d – e )] } + f)  không hợp lệ.  HD : dùng ngăn xếp để PUSH các dấu ngoặc trái ( ‘(‘, ’{‘, ‘[‘ ) vào Stack
Bài 4 : Viết chương trình nhập vào 1 ký tự, cho biết ký tự vừa nhập thuộc loại gi ? – ký tự, ký số ,toán tử toán học hay ký tự khác. Nếu ký tự là phím Escape thì thoát chương trình.
Bài 6 :Viết chương trình nhập 1 chuổi ký tự.  Xuất ký tự dưới dạng viết hoa ký tự đầu của từng từ, các ký tự còn lại là chữ thường Ex : Nhập : ngo phuoc nguyen Xuất : Ngo Phuoc Nguyen Nhập : VU tHanh hIEn Xuất : Vu Thanh Hien Bài 7 : Viết chương trình tìm số hoàn thiện (giới hạn 2 chữ số). Xuất các số hoàn thiện từ số lớn nhất đến số nhỏ.

More Related Content

What's hot

Chuong 4. lap trinh hop ngu
Chuong 4. lap trinh hop nguChuong 4. lap trinh hop ngu
Chuong 4. lap trinh hop ngumituan
 
Chap3 8051 microcontroller – assembly
Chap3 8051 microcontroller – assemblyChap3 8051 microcontroller – assembly
Chap3 8051 microcontroller – assemblyvietanhetc
 
lap trinh assembly cho VXL
lap trinh  assembly cho VXLlap trinh  assembly cho VXL
lap trinh assembly cho VXLThân Khương
 
7 can ban assembly
7 can ban assembly7 can ban assembly
7 can ban assemblyLy hai
 
Tóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cTóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cHồ Lợi
 
Tìm hiểu đầy đủ về tràn bộ đệm
Tìm hiểu đầy đủ về tràn bộ đệmTìm hiểu đầy đủ về tràn bộ đệm
Tìm hiểu đầy đủ về tràn bộ đệmtienhien110293
 
Họ vi xử lí 8086 intel
Họ vi xử lí 8086 intelHọ vi xử lí 8086 intel
Họ vi xử lí 8086 inteldark_valley
 
Phan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhconPhan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhconLy hai
 
Tai lieu lap trinh c cho 8051
Tai lieu lap trinh c cho 8051Tai lieu lap trinh c cho 8051
Tai lieu lap trinh c cho 8051engineertrongbk
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗipnanhvn
 

What's hot (17)

Chuong 4. lap trinh hop ngu
Chuong 4. lap trinh hop nguChuong 4. lap trinh hop ngu
Chuong 4. lap trinh hop ngu
 
Chap3 8051 microcontroller – assembly
Chap3 8051 microcontroller – assemblyChap3 8051 microcontroller – assembly
Chap3 8051 microcontroller – assembly
 
lap trinh assembly cho VXL
lap trinh  assembly cho VXLlap trinh  assembly cho VXL
lap trinh assembly cho VXL
 
7 can ban assembly
7 can ban assembly7 can ban assembly
7 can ban assembly
 
Session 09
Session 09Session 09
Session 09
 
Tóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cTóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của c
 
Assembly
AssemblyAssembly
Assembly
 
Chuong3 lập trình hợp ngữ
Chuong3 lập trình hợp ngữChuong3 lập trình hợp ngữ
Chuong3 lập trình hợp ngữ
 
Tìm hiểu đầy đủ về tràn bộ đệm
Tìm hiểu đầy đủ về tràn bộ đệmTìm hiểu đầy đủ về tràn bộ đệm
Tìm hiểu đầy đủ về tràn bộ đệm
 
Họ vi xử lí 8086 intel
Họ vi xử lí 8086 intelHọ vi xử lí 8086 intel
Họ vi xử lí 8086 intel
 
Phan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhconPhan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhcon
 
Tai lieu lap trinh c cho 8051
Tai lieu lap trinh c cho 8051Tai lieu lap trinh c cho 8051
Tai lieu lap trinh c cho 8051
 
Session 15
Session 15Session 15
Session 15
 
Chuong6 hoạt động ngắt
Chuong6 hoạt động ngắtChuong6 hoạt động ngắt
Chuong6 hoạt động ngắt
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗi
 
Session 21
Session 21Session 21
Session 21
 
Bai 17
Bai 17Bai 17
Bai 17
 

Viewers also liked

Tài liệu tiếng anh chuyên ngành xuất nhập khẩu từ Antoree.com
Tài liệu tiếng anh chuyên ngành xuất nhập khẩu từ Antoree.comTài liệu tiếng anh chuyên ngành xuất nhập khẩu từ Antoree.com
Tài liệu tiếng anh chuyên ngành xuất nhập khẩu từ Antoree.comAntoree.com
 
Slide vận tải
Slide vận tảiSlide vận tải
Slide vận tảidindin91
 
Mạng lưới giao thông hàng không
Mạng lưới giao thông hàng không Mạng lưới giao thông hàng không
Mạng lưới giao thông hàng không Viết Chúc
 
An toàn thông tin cho ngành hàng không
An toàn thông tin cho ngành hàng khôngAn toàn thông tin cho ngành hàng không
An toàn thông tin cho ngành hàng khôngAnh Dam
 
Giao nhan-van-tai-hang-hoa-bang-duong-bien
Giao nhan-van-tai-hang-hoa-bang-duong-bienGiao nhan-van-tai-hang-hoa-bang-duong-bien
Giao nhan-van-tai-hang-hoa-bang-duong-bienHaiyen Nguyen
 
Vai tro đặc điểm gtvt an
Vai tro đặc điểm gtvt anVai tro đặc điểm gtvt an
Vai tro đặc điểm gtvt antrungpvd
 
Oda giao thong van tai
Oda giao thong van taiOda giao thong van tai
Oda giao thong van tainewlife9x225
 
Quản trị dự án công nghệ thông tin 02
Quản trị dự án công nghệ thông tin 02Quản trị dự án công nghệ thông tin 02
Quản trị dự án công nghệ thông tin 02Anh Dam
 
Phân Loại container
Phân Loại containerPhân Loại container
Phân Loại containerCậu Mèo
 
Bài tiểu luận hàng air
Bài tiểu luận hàng airBài tiểu luận hàng air
Bài tiểu luận hàng airTamhoang Hoang
 
Tiếng anh thường dùng trong hàng hải
Tiếng anh thường dùng trong hàng hảiTiếng anh thường dùng trong hàng hải
Tiếng anh thường dùng trong hàng hảithuonglindo
 
An toan thong tin
An toan thong tinAn toan thong tin
An toan thong tinTrung Quan
 
Thủ tục Hải quan
Thủ tục Hải quanThủ tục Hải quan
Thủ tục Hải quankennho2928
 
[VT-BHNT] Giao nhận hàng hóa vận chuyển đường hàng không
[VT-BHNT] Giao nhận hàng hóa vận chuyển đường hàng không[VT-BHNT] Giao nhận hàng hóa vận chuyển đường hàng không
[VT-BHNT] Giao nhận hàng hóa vận chuyển đường hàng khôngQuyen Thuy
 

Viewers also liked (20)

Tài liệu tiếng anh chuyên ngành xuất nhập khẩu từ Antoree.com
Tài liệu tiếng anh chuyên ngành xuất nhập khẩu từ Antoree.comTài liệu tiếng anh chuyên ngành xuất nhập khẩu từ Antoree.com
Tài liệu tiếng anh chuyên ngành xuất nhập khẩu từ Antoree.com
 
Dia li
Dia liDia li
Dia li
 
Slide vận tải
Slide vận tảiSlide vận tải
Slide vận tải
 
Mạng lưới giao thông hàng không
Mạng lưới giao thông hàng không Mạng lưới giao thông hàng không
Mạng lưới giao thông hàng không
 
An toàn thông tin cho ngành hàng không
An toàn thông tin cho ngành hàng khôngAn toàn thông tin cho ngành hàng không
An toàn thông tin cho ngành hàng không
 
Giao nhan-van-tai-hang-hoa-bang-duong-bien
Giao nhan-van-tai-hang-hoa-bang-duong-bienGiao nhan-van-tai-hang-hoa-bang-duong-bien
Giao nhan-van-tai-hang-hoa-bang-duong-bien
 
Vai tro đặc điểm gtvt an
Vai tro đặc điểm gtvt anVai tro đặc điểm gtvt an
Vai tro đặc điểm gtvt an
 
Oda giao thong van tai
Oda giao thong van taiOda giao thong van tai
Oda giao thong van tai
 
Quản trị dự án công nghệ thông tin 02
Quản trị dự án công nghệ thông tin 02Quản trị dự án công nghệ thông tin 02
Quản trị dự án công nghệ thông tin 02
 
Phòng tránh rủi ro để nâng cao hiệu quả kinh doanh Xuất nhập khẩu
Phòng tránh rủi ro để nâng cao hiệu quả kinh doanh Xuất nhập khẩuPhòng tránh rủi ro để nâng cao hiệu quả kinh doanh Xuất nhập khẩu
Phòng tránh rủi ro để nâng cao hiệu quả kinh doanh Xuất nhập khẩu
 
Phan loai hang hoa XNK theo TT 14
Phan loai hang hoa XNK theo TT 14Phan loai hang hoa XNK theo TT 14
Phan loai hang hoa XNK theo TT 14
 
Chuyen de 3 giao nhan van tai quoc te
Chuyen de 3 giao nhan van tai quoc teChuyen de 3 giao nhan van tai quoc te
Chuyen de 3 giao nhan van tai quoc te
 
Phân Loại container
Phân Loại containerPhân Loại container
Phân Loại container
 
Slide tài liệu đào tạo về VNACCS/VCIS
Slide tài liệu đào tạo về VNACCS/VCISSlide tài liệu đào tạo về VNACCS/VCIS
Slide tài liệu đào tạo về VNACCS/VCIS
 
Bài tiểu luận hàng air
Bài tiểu luận hàng airBài tiểu luận hàng air
Bài tiểu luận hàng air
 
Tiếng anh thường dùng trong hàng hải
Tiếng anh thường dùng trong hàng hảiTiếng anh thường dùng trong hàng hải
Tiếng anh thường dùng trong hàng hải
 
Thủ tục hải quan điện tử đối với hàng hóa xuất khẩu, nhập khẩu thương mại
Thủ tục hải quan điện tử đối với hàng hóa xuất khẩu, nhập khẩu thương mạiThủ tục hải quan điện tử đối với hàng hóa xuất khẩu, nhập khẩu thương mại
Thủ tục hải quan điện tử đối với hàng hóa xuất khẩu, nhập khẩu thương mại
 
An toan thong tin
An toan thong tinAn toan thong tin
An toan thong tin
 
Thủ tục Hải quan
Thủ tục Hải quanThủ tục Hải quan
Thủ tục Hải quan
 
[VT-BHNT] Giao nhận hàng hóa vận chuyển đường hàng không
[VT-BHNT] Giao nhận hàng hóa vận chuyển đường hàng không[VT-BHNT] Giao nhận hàng hóa vận chuyển đường hàng không
[VT-BHNT] Giao nhận hàng hóa vận chuyển đường hàng không
 

Similar to Chuong10

Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaĐề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaViết thuê trọn gói ZALO 0934573149
 
CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdfCHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdfTriuPhm15
 
Lap trinh-c-cho-vdk
Lap trinh-c-cho-vdkLap trinh-c-cho-vdk
Lap trinh-c-cho-vdkHiepsvd Bk
 
Viết Ngôn Ngữ Lập Trình 8051 PIC AVR
Viết Ngôn Ngữ Lập Trình 8051 PIC AVRViết Ngôn Ngữ Lập Trình 8051 PIC AVR
Viết Ngôn Ngữ Lập Trình 8051 PIC AVRMr Giap
 
Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Ky Nguyen Ad
 
418 giaotrinh avr
418 giaotrinh avr418 giaotrinh avr
418 giaotrinh avranhhoi12345
 
Giaotrinh avr tech24.vn
Giaotrinh avr tech24.vnGiaotrinh avr tech24.vn
Giaotrinh avr tech24.vnbibibobo2007
 
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfLP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfChuong
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiHuynh MVT
 
[123doc] - dieu-khien-lap-trinh-nang-cao-plc.doc
[123doc] - dieu-khien-lap-trinh-nang-cao-plc.doc[123doc] - dieu-khien-lap-trinh-nang-cao-plc.doc
[123doc] - dieu-khien-lap-trinh-nang-cao-plc.docssuser51a27c
 
Baitap vxl
Baitap vxlBaitap vxl
Baitap vxlkhanh449
 
Chuong13
Chuong13Chuong13
Chuong13na
 
chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdfchuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdfquocdo23evnhcmc
 

Similar to Chuong10 (20)

Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaĐề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
 
Chuong2
Chuong2Chuong2
Chuong2
 
CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdfCHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
 
Lap trinh-c-cho-vdk
Lap trinh-c-cho-vdkLap trinh-c-cho-vdk
Lap trinh-c-cho-vdk
 
Viết Ngôn Ngữ Lập Trình 8051 PIC AVR
Viết Ngôn Ngữ Lập Trình 8051 PIC AVRViết Ngôn Ngữ Lập Trình 8051 PIC AVR
Viết Ngôn Ngữ Lập Trình 8051 PIC AVR
 
Ch assembly
Ch assemblyCh assembly
Ch assembly
 
1616 bai tap_vxl
1616 bai tap_vxl1616 bai tap_vxl
1616 bai tap_vxl
 
1616 bai tap_vxl
1616 bai tap_vxl1616 bai tap_vxl
1616 bai tap_vxl
 
Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr
 
418 giaotrinh avr
418 giaotrinh avr418 giaotrinh avr
418 giaotrinh avr
 
Giaotrinh avr tech24.vn
Giaotrinh avr tech24.vnGiaotrinh avr tech24.vn
Giaotrinh avr tech24.vn
 
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfLP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
 
Hop ngu mips
Hop ngu mipsHop ngu mips
Hop ngu mips
 
Tap lenh co_ban
Tap lenh co_banTap lenh co_ban
Tap lenh co_ban
 
Co ban ve msp430
Co ban ve msp430Co ban ve msp430
Co ban ve msp430
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansi
 
[123doc] - dieu-khien-lap-trinh-nang-cao-plc.doc
[123doc] - dieu-khien-lap-trinh-nang-cao-plc.doc[123doc] - dieu-khien-lap-trinh-nang-cao-plc.doc
[123doc] - dieu-khien-lap-trinh-nang-cao-plc.doc
 
Baitap vxl
Baitap vxlBaitap vxl
Baitap vxl
 
Chuong13
Chuong13Chuong13
Chuong13
 
chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdfchuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
 

More from na

Lap trinh huong doi tuong voi c++ smith.n studio
Lap trinh huong doi tuong voi c++   smith.n studioLap trinh huong doi tuong voi c++   smith.n studio
Lap trinh huong doi tuong voi c++ smith.n studiona
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oopna
 
Ky.thuat.vi.xu.ly uds
Ky.thuat.vi.xu.ly udsKy.thuat.vi.xu.ly uds
Ky.thuat.vi.xu.ly udsna
 
Chuong12
Chuong12Chuong12
Chuong12na
 
Chuong11
Chuong11Chuong11
Chuong11na
 
Chuong09
Chuong09Chuong09
Chuong09na
 
Chuong08
Chuong08Chuong08
Chuong08na
 
Chuong07
Chuong07Chuong07
Chuong07na
 
Chuong06
Chuong06Chuong06
Chuong06na
 
Chuong05
Chuong05Chuong05
Chuong05na
 
Chuong04
Chuong04Chuong04
Chuong04na
 
Chuong03
Chuong03Chuong03
Chuong03na
 
Chuong02
Chuong02Chuong02
Chuong02na
 
Chuong01
Chuong01Chuong01
Chuong01na
 

More from na (14)

Lap trinh huong doi tuong voi c++ smith.n studio
Lap trinh huong doi tuong voi c++   smith.n studioLap trinh huong doi tuong voi c++   smith.n studio
Lap trinh huong doi tuong voi c++ smith.n studio
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oop
 
Ky.thuat.vi.xu.ly uds
Ky.thuat.vi.xu.ly udsKy.thuat.vi.xu.ly uds
Ky.thuat.vi.xu.ly uds
 
Chuong12
Chuong12Chuong12
Chuong12
 
Chuong11
Chuong11Chuong11
Chuong11
 
Chuong09
Chuong09Chuong09
Chuong09
 
Chuong08
Chuong08Chuong08
Chuong08
 
Chuong07
Chuong07Chuong07
Chuong07
 
Chuong06
Chuong06Chuong06
Chuong06
 
Chuong05
Chuong05Chuong05
Chuong05
 
Chuong04
Chuong04Chuong04
Chuong04
 
Chuong03
Chuong03Chuong03
Chuong03
 
Chuong02
Chuong02Chuong02
Chuong02
 
Chuong01
Chuong01Chuong01
Chuong01
 

Chuong10

  • 1.
  • 2.
  • 3.
  • 4.
  • 5. THÍ DỤ SP STACK A,B,C là các Word MOV BP,SP MOV AX,[BP] MOV AX,[BP+2] MOV AX,[BP+6] ;AX = D ;AX = C ;AX = A A B C D
  • 6.
  • 7. POP và POPF : dùng để lấy một phần tử ra khỏi STACK. Cú pháp : POP đích : đưa nguồn vào đỉnh STACK POPF : cất nội dung ở đỉnh STACK vào thanh ghi cờ Chú ý : - Ở đây đích là một thanh ghi 16 bit (trừ thanh ghi IP) hay một từ nhớ Các lệnh PUSH, PUSHF, POP và POPF không ảnh hưởng tới các cờ
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. CẤU TRÚC CỦA CTCON TÊNCTC PROC [NEAR|FAR] CÁC LỆNH CỦA CTC RET TÊNCTC ENDP
  • 13.
  • 14. THÍ DỤ .DATA EXTRN MemVar : WORD, Array1 : BYTE , ArrLength :ABS … .CODE EXTRN NearProc : NEAR , FarProc : FAR …. MOV AX,MemVar MOV BX, OFFSET Array1 MOV CX, ArrLength … CALL NearProc …. CALL FarProc …..
  • 15.
  • 16. PUBLIC EXTRN GLOBAL Để thuận lợi trong việc dịch, liên kết chương trình đa file, Assembler cung cấp các điều khiển Public, Extrn và Global. PUBLIC Chỉ cho Assembler biết nhãn (label) nào nằm trong module này được phép sử dụng ở các module khác. Cú pháp : PUBLIC tên nhãn khai báo nhãn TÊN BiẾN TÊN CTC TÊN ĐI TRƯỚC NHÃN
  • 17. EXTRN Báo cho Assembler biết những nhãn đã được khai báo PUBLIC ở các module khác được sử dụng trong module này mà không cần phải khai báo lại. Cú pháp : EXTRN Tên nhãn : Kiểu BYTE WORD DATAPTR PROC FAR NEAR DWORD
  • 18. GLOBAL THAY THẾ PUBLIC VÀ EXTRN. Viết chương trình nằm trên 2 file (2 module) với sự phân công như sau : Module của chương trình chính (Main.ASM) có nhiệm vụ xác định Offset của 2 chuổi ký tự và gọi CTC nối 2 chuổi này và cho hiện kết quả ra màn hình. Module CTC (Sub.ASM) làm nhiệm vụ nối 2 chuổi và đưa vào bộ nhớ.
  • 19. Ví dụ minh hoạ về STACK, CALL/RET : chương trình in một số nguyên (16 bit) ra màn hình PrintNum10 PROC ; số nguyên N nằm trong AX PUSH BX CX DX MOV CX, 0 ; so lan push (so ky tu) laysodu: XOR DX, DX ; cho DX = 0 trước khi chia MOV BX, 10 DIV BX ; số dư trong DX, phần nguyên trong AX PUSH DX ; lưu phần dư vào stack INC CX CMP AX, 0 ; đã hết chưa? JNZ laysodu ; chưa hết, lấy số dư tiếp MOV AH, 2 INSO: POP DX ADD DL, '0' INT 21H LOOP inso POP DX CX BX RET ENDP PrintNum10
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. CÁC VÍ DỤ MINH HỌA NHẬP VÀO 1 SỐ HỆ HEX. IN RA SỐ ĐÃ NHẬP VỚI YÊU CẦU SAU : ViẾT CTCON NHẬP SỐ ViẾT CTCON XUẤT SỐ CTCHÍNH GỌI 2 CTCON TRÊN.
  • 30. LUYỆN TẬP LẬP TRÌNH C10 Bài 1 : Viết chương trình nhập 1 số nguyên n (n<9). Tính giai thừa của n và xuất kết quả ra màn hình dưới dạng số Hex (giới hạn 16 bits). Bài 2 :Viết chương trình nhap vao 1 chuổi ky tu. Hay in ra man hinh chuổi ky tu vua nhap theo thứ tự đảo (trong mỗi từ đảo từng ký tự). Bài 3 :Viết chương trình kiểm tra một biểu thức đại số có chứa các dấu ngoặc (như (), [] và {}) là hợp lệ hay không hợp lệ . Ví dụ : (a + [b – { c * ( d – e ) } ] + f) là hợp lệ nhưng (a + [b – { c * ( d – e )] } + f) không hợp lệ. HD : dùng ngăn xếp để PUSH các dấu ngoặc trái ( ‘(‘, ’{‘, ‘[‘ ) vào Stack
  • 31. Bài 4 : Viết chương trình nhập vào 1 ký tự, cho biết ký tự vừa nhập thuộc loại gi ? – ký tự, ký số ,toán tử toán học hay ký tự khác. Nếu ký tự là phím Escape thì thoát chương trình.
  • 32. Bài 6 :Viết chương trình nhập 1 chuổi ký tự. Xuất ký tự dưới dạng viết hoa ký tự đầu của từng từ, các ký tự còn lại là chữ thường Ex : Nhập : ngo phuoc nguyen Xuất : Ngo Phuoc Nguyen Nhập : VU tHanh hIEn Xuất : Vu Thanh Hien Bài 7 : Viết chương trình tìm số hoàn thiện (giới hạn 2 chữ số). Xuất các số hoàn thiện từ số lớn nhất đến số nhỏ.