Đề cương ôn tập môn kỹ thuật vi xử lý

48 552 0
Đề cương ôn tập môn kỹ thuật vi xử lý

Đ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

KỸ THUẬT VI XỬ LÝ ; ; BAI TAP 1 : Tổ chức chương trình ASSEMBLER16 đơn giảm ; CGROUP GROUP CODE_SEG,DATA_SEG ASSUME CS:CGROUP,DS:CGROUP ; CS trỏ tới manh lenh CODE_SEG SEGMENT PUBLIC ORG 100H ; bat dau từ dia chi 100 hex EXTRN KET_THUC:NEAR EXTRN INRA :NEAR ; ; Thủ tục chính : Chuyển byte mã HEX thành từ mã nhị phân trên màn hình ; HEX_NHị PROC NEAR ; mở thủ tục HEXA >biểu diễn NHị PHAN MOV BL,8AH ; hiển thị số 8A hexa CALL HIEN_THI ; gọi chương trình hiển thị CALL KET_THUC HEX_NHị ENDP HIEN_THI PROC NEAR MOV CX,08H DOI_MA: MOV DL,0H RCL BL,1H ADC DL,30H CALL INRA ; gọi thủ tục in ra màn hình từng bit từ file Thư viện LOOP DOI_MA HIEN_THI ENDP ; kết thúc Thủ tục chính ; CODE_SEG ENDS ; dòng mang lệnh ; DATA_SEG SEGMENT PUBLIC DATA_SEG ENDS ; END HEX_NHị ; kết thúc chương trình chính HEX_BIN ;

Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin Kỹ thuật vi xử lý ; ############################################################################### ## ; BAI TAP : Tổ chức chơng trình ASSEMBLER16 đơn giảm ; ############################################################################### ## CGROUP GROUP CODE_SEG,DATA_SEG ASSUME CS:CGROUP,DS:CGROUP ; CS trỏ tới manh lenh CODE_SEG SEGMENT PUBLIC ORG 100H ; bat dau từ dia chi 100 hex EXTRN KET_THUC:NEAR EXTRN INRA :NEAR ; ; Thủ tục : Chuyển byte mã HEX thành từ mã nhị phân hình ; HEX_NHị PROC NEAR ; mở thủ tục HEXA >biểu diễn NHị PHAN MOV BL,8AH ; hiển thị số 8A hexa CALL HIEN_THI ; gọi chơng trình hiển thị CALL KET_THUC HEX_NHị ENDP HIEN_THI PROC NEAR MOV CX,08H DOI_MA: MOV DL,0H RCL BL,1H ADC DL,30H CALL INRA ; gọi thủ tục in hình bit từ file Th viện LOOP DOI_MA HIEN_THI ENDP ; kết thúc Thủ tục ; CODE_SEG ENDS ; dòng mang lệnh ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DATA_SEG SEGMENT PUBLIC DATA_SEG ENDS ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& END HEX_NHị ; kết thúc chơng trình HEX_BIN ; ############################################################################### ## Kỹ thuật vi xử lý tin học chuyên ngành ; Th viện BAI TAP : Tổ chức chơng trình ASSEMBLER16 đơn giảm ; ############################################################################### ## CGROUP GROUP CODE_SEG,DATA_SEG ASSUME CS:CGROUP,DS:CGROUP; CS trỏ tới mảng lệnh ; DS trỏ tới mảng lệnh CODE_SEG SEGMENT PUBLIC ; -PUBLIC INRA INRA PROC NEAR push ax MOV AH,02H INT 21H pop ax RET INRA ENDP ; -; Thủ tục kết thúc nhiệm vụ hành de ; tra điều khiển ve chơng trình (sử dụng ; ham 4C hex cua DOS de mô phỏng) ; -PUBLIC KET_THUC KET_THUC PROC NEAR MOV AH,4CH INT 21H KET_THUC ENDP ; CODE_SEG ENDS ; dòng mang lệnh ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DATA_SEG SEGMENT PUBLIC DATA_SEG ENDS ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& END ; ############################################################################### ## ; BAI TAP : Hiển thị byte HEXE -> nhị phân bit len hình ; Tổ chức chơng trình ASSEMBLER16 đơn giảm ; ############################################################################### ## ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG ; CS trỏ tới manh lenh CODE_SEG SEGMENT PUBLIC Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin EXTRN KET_THUC:FAR ; gọi cac thủ tục File Th viện EXTRN INRA :FAR ; -;Thủ tục : Chuyển byte mã HEX ;thành từ mã nhị phân hình ; -HEX_BIN PROC FAR; NEAR ; mở thủ tục HEXA >biểu diễn NHị PHAN MOV BL,8AH ; hiển thị số 8A hexa CALL HIEN_THI ; gọi chơng trình hiển thị CALL KET_THUC RET HEX_BIN ENDP HIEN_THI PROC NEAR MOV CX,08H DOI_MA: MOV DL,0H RCL BL,1H ADC DL,30H CALL INRA ; gọi thủ tục in hình bit từ file Th viện LOOP DOI_MA HIEN_THI ENDP ; kết thúc Thủ tục ; CODE_SEG ENDS ; dòng mang lệnh ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DATA_SEG SEGMENT PUBLIC DATA_SEG ENDS ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& STACK_SEG SEGMENT PUBLIC DB 10 DUP('STACK') STACK_SEG ENDS END HEX_BIN ; kết thúc chơng trình HEX_BIN ; ############################################################################### ## ; Th viện BAI TAP : Tổ chức chơng trình ASSEMBLER16 đơn giảm ; ############################################################################### ## ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG; ; DS trỏ tới mảng lệnh CODE_SEG SEGMENT PUBLIC ; -PUBLIC INRA Kỹ thuật vi xử lý CS trỏ tới mảng lệnh tin học chuyên ngành INRA PROC FAR push ax MOV AH,02H INT 21H pop ax RET INRA ENDP ; -; Thủ tục kết thúc nhiệm vụ hành de ; tra điều khiển ve chơng trình (sử dụng ; ham 4C hex cua DOS de mở phỏng) ; -PUBLIC KET_THUC KET_THUC PROC FAR MOV AH,4CH INT 21H KET_THUC ENDP ; CODE_SEG ENDS ; dòng mang lệnh ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DATA_SEG SEGMENT PUBLIC DATA_SEG ENDS ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& STACK_SEG SEGMENT PUBLIC DB 10 DUP('STACK') STACK_SEG ENDS ; -END ; ############################################################################### ## ;BAI TAP : Tổ chức chơng trình ASSEMBLER16 đơn giảm ; ############################################################################### ## CGROUP GROUP CODE_SEG,DATA_SEG ASSUME CS:CGROUP,DS:CGROUP ; CS trỏ tới manh lenh ; DS trỏ tới manh lenh ; SS trỏ tới manh lenh CODE_SEG SEGMENT PUBLIC ORG 100H ; bat dau từ dia chi 100 hex EXTRN WRITE_CHAR:NEAR ; sử dụng thủ tục file Th viện EXTRN KET_THUC :NEAR EXTRN GOTOXY :NEAR Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin ; -;Thủ tục : Chuyển số thap phan ;thành từ mã HEXA hình ; -TEST_WRITE_DECIMAL PROC NEAR ; mở thủ tục thap phan -> HEXA CALL FLAG ; in co trang thai MOV DX,1789 ; hiển thị số 17 THAP PHAN CALL WRITE_decimal ; gọi chơng trình hiển thị CALL KET_THUC TEST_WRITE_DECIMAL ENDP ; WRITE_DECIMAL PROC NEAR PUSH AX PUSH CX PUSH DX PUSH SI MOV AX,DX MOV SI,10 XOR CX,CX NON_ZERO: XOR DX,DX DIV SI PUSH DX INC CX OR AX,AX JNE NON_ZERO WRITE_DIGIT_LOOP: POP DX CALL WRITE_HEX_DIGIT LOOP WRITE_DIGIT_LOOP END_DECIMAL: POP SI POP DX POP CX POP AX RET WRITE_DECIMAL ENDP ; kết thúc Thủ tục ; -;Thủ tục in hình (sử dụng ham dich vu ; cua DOS PC de mở chơng trình can viet ; -WRITE_HEX PROC NEAR PUSH CX PUSH DX MOV DH,DL MOV CX,4 SHR DL,CL CALL WRITE_HEX_DIGIT MOV DL,DH AND DL,0FH Kỹ thuật vi xử lý tin học chuyên ngành CALL WRITE_HEX_DIGIT POP DX POP CX RET WRITE_HEX ENDP ; WRITE_HEX_DIGIT PROC NEAR PUSH DX CMP DL,10 JAE HEX_LETTER ADD DL,'0' JMP SHORT WRITE_DIGIT HEX_LETTER: ADD DL,'A'-10 WRITE_DIGIT: CALL WRITE_CHAR POP DX RET WRITE_HEX_DIGIT ENDP ; -FLAG PROC NEAR; co trang thai PUSH DX CALL GOTOXY LEA DX,THONG_BAO ; thong bao trang thai CALL MESSAGE POP DX RET FLAG ENDP ; MESSAGE PROC NEAR PUSH AX PUSH DX PUSH SI PUSHF CLD mov SI,DX STRING_LOOP: LODSB OR AL,AL ; k/tra het dong thong bao? JZ END_STRING MOV DL,AL CALL WRITE_CHAR JMP STRING_LOOP END_STRING: POPF POP SI POP DX Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin POP AX RET MESSAGE ENDP ; -CODE_SEG ENDS ; dòng mang lệnh ; -DATA_SEG SEGMENT PUBLIC PUBLIC THONG_BAO THONG_BAO DB 'HELLOW! WORLD DB 0DH,0AH,00H ',0DH,0AH,00H DATA_SEG ENDS ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& END TEST_WRITE_DECIMAL ; kết thúc chơng trình HEX_BIN ; ############################################################################### ## ; Th viện BAI TAP : Tổ chức chơng trình Th viện ASSEMBLER16 đơn giảm ; ############################################################################### ## ; -; Tổ chức FILE Th viện sử dụng ham dich vu ; cua DOS va BIOS PC de mở mot số chuc ; nang cua he vi xu ly 16 bit can thiet ke ; -CGROUP GROUP CODE_SEG,DATA_SEG ASSUME CS:CGROUP,DS:CGROUP ; DS trỏ tới manh lenh ; SS trỏ tới manh lenh CODE_SEG SEGMENT PUBLIC ; mở mang mã lenh ; PUBLIC WRITE_CHAR WRITE_CHAR PROC NEAR PUSH AX MOV AH,02H INT 21H POP AX RET WRITE_CHAR ENDP ; -; Thủ tục kết thúc nhiệm vụ hành de ; tra điều khiển ve chơng trình (sử dụng Kỹ thuật vi xử lý tin học chuyên ngành ; ham 4C hex cua DOS de mở phỏng) ; -PUBLIC KET_THUC KET_THUC PROC NEAR MOV AH,4CH INT 21H KET_THUC ENDP ; -PUBLIC GOTOXY GOTOXY PROC NEAR PUSH AX PUSH BX PUSH DX MOV DX,0000H MOV BH,0 MOV AH,2 INT 10H POP DX POP BX POP AX RET GOTOXY ENDP ; CODE_SEG ENDS ; dòng mang lệnh ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DATA_SEG SEGMENT PUBLIC DATA_SEG ENDS ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& END ; ############################################################################### ## ; BAI TAP : Tổ chức chơng trình ASSEMBLER16 đơn giảm ; ############################################################################### ## ;CGROUP GROUP CODE_SEG,DATA_SEG ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG ; CS trỏ tới manh lenh ; DS trỏ tới manh lenh ; SS trỏ tới manh lenh CODE_SEG SEGMENT PUBLIC Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin ORG 100H ; bat dau từ dia chi 100 hex EXTRN WRITE_CHAR:FAR ; sử dụng thủ tục file Th viện EXTRN KET_THUC :FAR EXTRN GOTOXY :FAR ; -;Thủ tục : Chuyển số thap phan ;thành từ mã HEXA hình ; -TEST_WRITE_DECIMAL PROC FAR ; mở thủ tục thap phan -> HEXA CALL FLAG ; in co trang thai MOV DX,1789 ; hiển thị số 17 THAP PHAN CALL WRITE_decimal ; gọi chơng trình hiển thị CALL KET_THUC RET TEST_WRITE_DECIMAL ENDP ; WRITE_DECIMAL PROC NEAR PUSH AX PUSH CX PUSH DX PUSH SI MOV AX,DX MOV SI,10 XOR CX,CX NON_ZERO: XOR DX,DX DIV SI PUSH DX INC CX OR AX,AX JNE NON_ZERO WRITE_DIGIT_LOOP: POP DX CALL WRITE_HEX_DIGIT LOOP WRITE_DIGIT_LOOP END_DECIMAL: POP SI POP DX POP CX POP AX RET WRITE_DECIMAL ENDP ; kết thúc Thủ tục ; -;Thủ tục in hình (sử dụng ham dich vu ; cua DOS PC de mở chơng trình can viet ; -WRITE_HEX PROC NEAR Kỹ thuật vi xử lý tin học chuyên ngành PUSH CX PUSH DX MOV DH,DL MOV CX,4 SHR DL,CL CALL WRITE_HEX_DIGIT MOV DL,DH AND DL,0FH CALL WRITE_HEX_DIGIT POP DX POP CX RET WRITE_HEX ENDP ; WRITE_HEX_DIGIT PROC NEAR PUSH DX CMP DL,10 JAE HEX_LETTER ADD DL,'0' JMP SHORT WRITE_DIGIT HEX_LETTER: ADD DL,'A'-10 WRITE_DIGIT: CALL WRITE_CHAR POP DX RET WRITE_HEX_DIGIT ENDP ; -FLAG PROC NEAR; co trang thai PUSH AX PUSH DX CALL GOTOXY MOV AX,DATA_SEG MOV DS,AX MOV DX,OFFSET THONG_BAO ; thong bao trang thai CALL MESSAGE POP DX POP AX RET FLAG ENDP ; MESSAGE PROC NEAR PUSH AX PUSH DX PUSH SI PUSHF CLD mov SI,DX 10 jmp draw _end: call ket_thuc; write_pattern endp code_seg ends data_seg segment public ; -; Cau truc cua duong ngang phia tren ; tham số dau la ky từ hoa, tham so ; thu hai la số luong ky từ can in ; top_line_pattern label byte db ' ',7 db upper_left,1 db horizontal_bar,13 db top_t_bar,1 db horizontal_bar,13 db top_t_bar,1 db horizontal_bar,13 db top_t_bar,1 db horizontal_bar,13 db top_t_bar,1 db horizontal_bar,13 db upper_right,1 db bottom_line_pattern label byte db ' ',7 db lower_left,1 db horizontal_bar,13 db bottom_t_bar,1 db horizontal_bar,13 db bottom_t_bar,1 db horizontal_bar,13 db bottom_t_bar,1 db horizontal_bar,13 db bottom_t_bar,1 db horizontal_bar,13 db lower_right,1 db data_seg ends ; -STACK_SEG SEGMENT PUBLIC DB 10 DUP('STACK'); 34 Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin STACK_SEG ENDS end write_pattern ; ############################################################################### ## ; Th viện BAI TAP : Tổ chức chơng trình Th viện ASSEMBLER16 đơn giảm ; ############################################################################### ## ; -; Tổ chức FILE Th viện sử dụng ham dich vu ; cua DOS va BIOS PC de mở mot số chuc ; nang cua he vi xu ly 16 bit can thiet ke ; -ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG ; DS trỏ tới manh lenh ; SS trỏ tới manh lenh CODE_SEG SEGMENT PUBLIC ; mở mang mã lenh ; PUBLIC WRITE_CHAR WRITE_CHAR PROC FAR PUSH AX MOV AH,02H INT 21H POP AX RET WRITE_CHAR ENDP ; -PUBLIC GOTOXY GOTOXY PROC FAR; PUSH AX PUSH BX PUSH DX MOV DH,Dong; Toa dong cua hình TEXT MOV DL,Cot; Toa cot cua hình TEXT MOV BH,0 MOV AH,2 INT 10H POP DX POP BX POP AX RET GOTOXY ENDP ; -; Thủ tục kết thúc nhiệm vụ hành de ; tra điều khiển ve chơng trình (sử dụng Kỹ thuật vi xử lý 35 tin học chuyên ngành ; ham 4C hex cua DOS de mở phỏng) ; -PUBLIC KET_THUC KET_THUC PROC FAR; MOV AH,4CH INT 21H KET_THUC ENDP ; CODE_SEG ENDS ; dòng mang lệnh ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DATA_SEG SEGMENT PUBLIC PUBLIC Dong Dong db 00h PUBLIC Cot Cot db 00h DATA_SEG ENDS ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& STACK_SEG SEGMENT PUBLIC DB 10 DUP('STACK'); STACK_SEG ENDS ; -END ; ; ############################################################################### ##### ; BT6: ve khung cua số bang ky từ hoa cung CSDL chua cua số HEX va cua số ASCII ; ############################################################################### ##### ASSUME cs:CODE_SEG,ds:DATA_SEG,ss:STACK_SEG; Thong bao cho chuong trinh dich ; cac thành ghi quan ly mang ; ; Phân khai bao cac hang ky hieu cho cac ky tu ; hoa bang mã ASCII de ve khung ; -vertical_bar equ 0bah horizontal_bar equ 0cdh upper_left equ 0c9h upper_right equ 0bbh lower_left equ 0c8h lower_right equ 0bch top_t_bar equ 0cbh ;Thành ngang ;Thành dung ;Thành khep goc tren ben trai ;Thành khep goc tren ben phai ;Thành khep goc duoi ben trai ;Thành khep goc ben phai ;Thành chu T 36 Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin bottom_t_bar equ 0cah top_tick equ 0d1h bottom_tick equ 0cfh ;Thành chu T nguoc ;Thành vach manh ;Thành vach manh phia duoi code_seg segment public ; -; ############################################################################### ## ; BAI TAP 3: Ch trinh HIểN THị BUFFER RAM Tổ chức chơng trình ASSEMBLER16 đơn giảm ; ############################################################################### ## EXTRN KET_THUC:FAR EXTRN SEND_CRLF:FAR ; -;Thủ tục : In hình buffer ;RAM theo dong tren cua so: ;HEXA va ASCII ; -HIEN_THI PROC FAR ; mở thủ tục HIểN THị MOV AX,DATA_SEG MOV DS,AX CALL WRITE_TOP_PATTERN; CALL SEND_CRLF MOV BX,OFFSET BUFFER_OFFSET MOV CX,16 ; hiển thị 16 dong RAM_BUFFER: CALL HIEN_THI_DONG ; hiển thị dong 16 byte CALL SEND_CRLF ; xuong dong ve dau dong ADD BX,16 ; tang 16 bytes nua cho dong tiep LOOP RAM_BUFFER ; lap lai voi số lan CX CALL WRITE_BOTTOM_PATTERN; CALL KET_THUC HIEN_THI ENDP ; EXTRN WRITE_CHAR:FAR HIEN_THI_DONG PROC NEAR ; ; thu tuc in dong, moi dong I ; 16 byte chua RAM_BUFFER : ; truoc tien o cua số HEXA roi den I ; cua số ASCII I Kỹ thuật vi xử lý I 37 tin học chuyên ngành ; ' PUSH AX PUSH BX PUSH CX PUSH DX MOV DL,' ' MOV CX,7 write_n_times : ; ; nhan in ky từ DL voi so ; lan bang gia tri chua CL call write_char ; gọi thủ tục in ky từ DL hình loop write_n_times MOV DL,VERTICAL_BAR CALL WRITE_CHAR MOV CX,16 PUSH BX ; offset cho cua số ASCII HEX_WIN: MOV DL,[BX]; CALL WRITE_HEX ; gọi chơng trình in số HEX MOV DL,' ' ; dl=20hexa la mã khoang trang CALL WRITE_CHAR INC BX LOOP HEX_WIN ; -; xong cua số HEX_WIN MOV DL,VERTICAL_BAR CALL WRITE_CHAR ; -MOV CX,16 POP BX ASCII_WIN: MOV DL,[BX]; CALL WRITE_CHAR INC BX LOOP ASCII_WIN MOV DL,VERTICAL_BAR CALL WRITE_CHAR POP DX POP CX POP BX POP AX RET HIEN_THI_DONG ENDP ; kết thúc thủ tụchiển thị dong ; -WRITE_HEX PROC NEAR PUSH CX 38 Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin MOV DH,DL MOV CX,4 SHR DL,CL CALL WRITE_HEX_DIGIT MOV DL,DH AND DL,0FH CALL WRITE_HEX_DIGIT POP CX RET WRITE_HEX ENDP ; PUBLIC WRITE_HEX_DIGIT EXTRN WRITE_CHAR:FAR WRITE_HEX_DIGIT PROC NEAR PUSH DX CMP DL,10 JAE HEX_LETTER ADD DL,'0' JMP WRITE_DIGIT HEX_LETTER: ADD DL,'A'-10 WRITE_DIGIT: CALL WRITE_CHAR POP DX RET WRITE_HEX_DIGIT ENDP ; public write_top_pattern extrn write_char:far ; thủ tục o ham Th viện extrn gotoXY :far ; extrn ket_thuc :far ; -;Thủ tục WRITE_PATTERN de ve khung bang cac ky tu ;do hoa cua bang mã ASCII ; -write_top_pattern proc near data_seg segment public extrn Dong:byte extrn Cot :byte Kỹ thuật vi xử lý ; bien dong hình TEXT ; bien cot hình TEXT 39 tin học chuyên ngành data_seg ends ; -PUSH AX PUSH BX PUSH CX PUSH DX cld ; dat co huong = (Direction=0) mov dx,offset top_line_pattern; DX trỏ tới CSDL cua duong ngang ; cua khung can ve mov dong,05 ; lay toa X va Y vao bien 'dong' va 'cot' mov Cot, 00h ; (dong:5 cot:0) call gotoXY ; gọi thủ tục dat tro hình vao toa ; XY da xac dinh mov si,dx ; Chuyển OFFSET DX vao SI de sử dụng ; lenh LODSB pattern_top_loop: lodsb ; nhan byte CSDL vao AL cua bo VXL or al,al ; kiem tra da toi cuoi CSDL chua? jz end_top_pattern ; neu roi thi kết thúc mov dl,al ; neu chua thi Chuyển AL vao DL lodsb ; nhan tiep byte tiep theo va Chuyển ; vao AL mov cl,al ; Chuyển vao thành dem CL de sử dụng ; lenh LOOP xor ch,ch write_n_times1 : ; nhan in ky từ DL voi so ; lan bang gia tri chua CL call write_char ; gọi thủ tục in ky từ DL hình loop write_n_times1 jmp pattern_top_loop end_top_pattern: POP DX POP CX POP BX POP AX ret write_top_pattern endp ; -public write_bottom_pattern write_bottom_pattern proc near data_seg segment public extrn Dong:byte extrn Cot :byte ; bien dong hình TEXT ; bien cot hình TEXT 40 Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin data_seg ends ; -PUSH AX PUSH BX PUSH CX PUSH DX cld ; dat co huong = (Direction=0) mov dx,offset bottom_line_pattern; DX trỏ tới CSDL cua duong ngang ; cua khung can ve mov dong,22 ; lay toa X va Y vao bien 'dong' va 'cot' mov Cot, 00h ; (dong:5 cot:0) call gotoXY ; gọi thủ tục dat tro hình vao toa ; XY da xac dinh mov si,dx ; Chuyển OFFSET DX vao SI de sử dụng ; lenh LODSB pattern_bottom_loop: lodsb ; nhan byte CSDL vao AL cua bo VXL or al,al ; kiem tra da toi cuoi CSDL chua? jz end_bottom_pattern ; neu roi thi kết thúc mov dl,al ; neu chua thi Chuyển AL vao DL lodsb ; nhan tiep byte tiep theo va Chuyển ; vao AL mov cl,al ; Chuyển vao thành dem CL de sử dụng ; lenh LOOP xor ch,ch write_n_times2 : ; nhan in ky từ DL voi so ; lan bang gia tri chua CL call write_char ; gọi thủ tục in ky từ DL hình loop write_n_times2 jmp pattern_bottom_loop end_bottom_pattern: POP DX POP CX POP BX POP AX ret write_bottom_pattern endp code_seg ends data_seg segment public ; -; Cau truc cua duong ngang phia tren ; tham số dau la ky từ hoa, tham so ; thu hai la số luong ky từ can in ; Kỹ thuật vi xử lý 41 tin học chuyên ngành top_line_pattern label byte db ' ',7 db upper_left,1 db horizontal_bar,11 db top_t_bar,1 db horizontal_bar,11 db top_t_bar,1 db horizontal_bar,11 db top_t_bar,1 db horizontal_bar,12 db top_t_bar,1 db horizontal_bar,16 db upper_right,1 db bottom_line_pattern label byte db ' ',7 db lower_left,1 db horizontal_bar,11 db bottom_t_bar,1 db horizontal_bar,11 db bottom_t_bar,1 db horizontal_bar,11 db bottom_t_bar,1 db horizontal_bar,12 db bottom_t_bar,1 db horizontal_bar,16 db lower_right,1 db ; -PUBLIC BUFFER_OFFSET BUFFER_OFFSET DB 16 DUP(41H) DB 16 DUP(42H) DB 16 DUP(43H) DB 16 DUP(44H) DB 16 DUP(45H) DB 16 DUP(46H) DB 16 DUP(30H) DB 16 DUP(31H) DB 16 DUP(32H) DB 16 DUP(33H) DB 16 DUP(34H) DB 16 DUP(35H) DB 16 DUP(36H) DB 16 DUP(37H) DB 16 DUP(38H) DB 16 DUP(39H) ; -data_seg ends ; -STACK_SEG SEGMENT PUBLIC 42 Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin DB 10 DUP('STACK'); STACK_SEG ENDS ; END HIEN_THI ; kết thúc chơng trình HIEN_THI ; ############################################################################### ## ; Th viện BAI TAP : Tổ chức chơng trình Th viện ASSEMBLER16 đơn giảm ; ############################################################################### ## ; -; Tổ chức FILE Th viện sử dụng ham dich vu ; cua DOS va BIOS PC de mở mot số chuc ; nang cua he vi xu ly 16 bit can thiet ke ; -ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG ; CS trỏ tới mảng lệnh ; DS trỏ tới manh du lieu ; SS trỏ tới manh ngan xep CODE_SEG SEGMENT PUBLIC ; mở mang mã lenh ; PUBLIC WRITE_CHAR WRITE_CHAR PROC FAR PUSH AX MOV AH,02H INT 21H POP AX RET WRITE_CHAR ENDP ; -PUBLIC GOTOXY GOTOXY PROC FAR; PUSH AX PUSH BX PUSH DX MOV DH,Dong; Toa dong cua hình TEXT MOV DL,Cot; Toa cot cua hình TEXT MOV BH,0 MOV AH,2 INT 10H POP DX POP BX POP AX RET Kỹ thuật vi xử lý 43 tin học chuyên ngành GOTOXY ENDP ; -; Thủ tục kết thúc nhiệm vụ hành de ; tra điều khiển ve chơng trình (sử dụng ; ham 4C hex cua DOS de mở phỏng) ; -PUBLIC KET_THUC KET_THUC PROC FAR; MOV AH,4CH INT 21H KET_THUC ENDP ; PUBLIC SEND_CRLF CR EQU 13; LF EQU 10; SEND_CRLF PROC FAR PUSH AX PUSH DX MOV DL,CR MOV AH,02H ; gọi ham dich vu cua DOS INT 21H ; VE DAU DONG MOV DL,LF INT 21H ; SANG DONG POP DX POP AX RET SEND_CRLF ENDP ; CODE_SEG ENDS ; dòng mang lệnh ; DATA_SEG SEGMENT PUBLIC PUBLIC Dong Dong db 00h PUBLIC Cot Cot db 00h DATA_SEG ENDS ; -STACK_SEG SEGMENT PUBLIC DB 10 DUP('STACK'); STACK_SEG ENDS ; -END ; ############################################################################### ## ; BAI TAP : Viet chuong trinh ASSEMBLER16: Ve hinh chu nhat che do hoa 44 Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin ; hình 640x480 pixel thuc hien bang he VI XU LY 16bit INTEL 80286 ->80586 ; ############################################################################### ## ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG CODE_SEG SEGMENT PUBLIC EXTRN MODE_GRAPHIC: FAR ; Cac thủ tục o FILE Th viện EXTRN KET_THUC : FAR EXTRN WRITE_DOT : FAR ; -;Thủ tục BOX dung de: - ve canh day phia tren từ trai sang phai ; - ve hai canh ben từ tren xuong duoi ; - ve canh day phia duoi từ trai sang phai ; -BOX PROC FAR CALL MODE_GRAPHIC MOV AX,DATA_SEG MOV DS,AX MOV CX,[BOTCOL] SUB CX,[TOPCOL] MOV SI,[TOPROW] MOV DI,[TOPCOL] ; khoi dong che do hoa (GRAPHIC) ; cho DS trỏ tới mang du lieu ; CX chua số pixel canh day phia tren ; SI chua toa dong phia tren (ROW) ; DI chua toa cot phia tren (COL) TOPLOOP: ; vong lap ve canh day phia tren CALL WRITE_DOT ; gọi chuong trinh in pixel INC DI ; sang cot ke ben phai de ve tiep CALL DELAY ; giu cham de quan sat LOOP TOPLOOP MOV CX,[BOTROW] SUB CX,[TOPROW] MOV SI,[TOPROW] ; CX chua số pixel canh ben SIDELOOP: ;vong lap ve hai canh ben MOV DI,[TOPCOL] CALL WRITE_DOT MOV DI,[BOTCOL] CALL WRITE_DOT INC SI CALL DELAY LOOP SIDELOOP MOV CX,[BOTCOL] SUB CX,[TOPCOL] MOV SI,[BOTROW] MOV DI,[TOPCOL] Kỹ thuật vi xử lý ; CX chua số pixel canh day phia duoi 45 tin học chuyên ngành BOTLOOP: ; vong lap ve canh day phia duoi CALL WRITE_DOT INC DI CALL DELAY LOOP BOTLOOP CALL KET_THUC BOX ENDP ; ; Thủ tục dung de giu cham qua trinh in ; pixel hình de de theo roi Bien bo nho ; DELA an dinh thoi gian giu cham can thiet ; DELAY PROC near ;mở thủ tục giu cham PUSH AX PUSH BX MOV AX,DELA ; gia tri giu cham DELA -> AX LOOP1: MOV BX,0FFFH ; BX chua gia tri giu cham cho vong ; lap LOOP2 LOOP2: DEC BX ; giam BX di don vi JNZ LOOP2 ; nhay ve LOOP2 neu chua rong (BX0) DEC AX ; giam AX di don vi JNZ LOOP1 ; nhay ve LOOP1 neu chua rong (BX0) POP BX POP AX RET DELAY ENDP ; CODE_SEG ENDS ; dòng mang lệnh ; -DATA_SEG SEGMENT PUBLIC TOPROW DW 50 ; bien bo nho WORD cho toa dong phia tren TOPCOL DW 100 ; bien bo nho WORD cho toa cot phia tren BOTROW DW 400 ; bien bo nho WORD cho toa dong phia duoi BOTCOL DW 600 ; bien bo nho WORD cho toa cot phia duoi DELA DW 20 ; bien bo nho WORD cho giu cham PUBLIC COLOR COLOR DB 15 ; bien bo nho BYTE cho mau pixel DATA_SEG ENDS ; -STACK_SEG SEGMENT PUBLIC DB 100 DUP('STACK') STACK_SEG ENDS ; -END BOX ; kết thúc chơng trình BOX.ASM 46 Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin ; ############################################################################### ## ; TH VIệN BAI TAP : Tổ chức chơng trình Th viện ASSEMBLER16 đơn giảm ; ############################################################################### ## ; -; Tổ chức FILE Th viện sử dụng ham dich vu ; cua BIOS PC de mở mot số chuc ; nang cua he vi xu ly 16 bit can thiet ke ; -ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG ; DS trỏ tới manh lenh ; SS trỏ tới manh lenh CODE_SEG SEGMENT PUBLIC ; mở mang mã lenh ; PUBLIC MODE_GRAPHIC MODE_GRAPHIC PROC FAR; thủ tục tao hình hoa PUSH AX MOV AH,00H ; ham MOV AL,12H ; phân giai 640 cot x 480 dong INT 10H ; ngat 10hex cua BIOS POP AX RET MODE_GRAPHIC ENDP ; -; Thủ tục kết thúc nhiệm vụ hành de ; tra điều khiển ve chơng trình (sử dụng ; ham 4C hex cua DOS de mở phỏng) ; -PUBLIC KET_THUC KET_THUC PROC FAR; kết thúc cong viec trao quyen dieu hanh cho DOS MOV AH,4CH INT 21H KET_THUC ENDP ; -PUBLIC WRITE_DOT ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DATA_SEG SEGMENT PUBLIC EXTRN COLOR:BYTE DATA_SEG ENDS ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& WRITE_DOT PROC FAR; thủ tục in diem (pixel) hình hoa PUSH AX PUSH CX PUSH DX Kỹ thuật vi xử lý 47 tin học chuyên ngành MOV AX,DATA_SEG MOV DS,AX MOV DX,SI ; số hieu dong cua toa pixel MOV CX,DI ; số hieu cot cua toa pixel MOV AL,COLOR ; mau cua pixel MOV AH,0CH ; ham 0ch - in pixel hình INT 10H ; khoi dong ngat 10h cua BIOS POP DX POP CX POP AX RET WRITE_DOT ENDP ; CODE_SEG ENDS ; dòng mang lệnh ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DATA_SEG SEGMENT PUBLIC DATA_SEG ENDS ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& STACK_SEG SEGMENT PUBLIC DB 10 DUP('STACK'); STACK_SEG ENDS ; -END 48 [...]... ############################################################################### ## ; Th vi n BAI TAP 3 : Tổ chức chơng trình Th vi n ASSEMBLER16 đơn giảm ; ############################################################################### ## ; -; Tổ chức FILE Th vi n sử dụng ham dich vu ; cua DOS va BIOS PC de mở phỏng mot số chuc Kỹ thuật vi xử lý 15 tin học chuyên ngành ; nang cua he vi xu ly 16 bit can thiet ke ; ... DUP(39H) DATA_SEG ENDS ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Kỹ thuật vi xử lý 19 tin học chuyên ngành STACK_SEG SEGMENT PUBLIC DB 10 DUP('STACK') STACK_SEG ENDS ; -END HIEN_THI ; kết thúc chơng trình chính HIEN_THI ; ############################################################################### ## ;Th vi n BAI TAP 3 : Tổ chức chơng trình Th vi n ASSEMBLER16 đơn giảm ; ###############################################################################... ############################################################################### ## ;Th vi n BAI TAP 4 : Cộng 2 Số tự nhiên Tổ chức ch trình Th vi n ASSEMBLER16 đơn giảm ; ############################################################################### ## ; -; Tổ chức FILE Th vi n sử dụng ham dich vu 30 Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin ; cua DOS va BIOS PC de mở phỏng mot số chuc ; nang cua he vi xu ly 16 bit can thiet... ENDS 24 Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin END ADDn ; ############################################################################### ## ;Th vi n BAI TAP 4 : Cộng 2 Số tự nhiên Tổ chức ch trình Th vi n ASSEMBLER16 đơn giảm ; ############################################################################### ## ; -; Tổ chức FILE Th vi n sử dụng ham dich vu ; cua... 34 Trờng Đại học dân lập Đông Đô - Khoa Công nghệ thông tin STACK_SEG ENDS end write_pattern ; ############################################################################### ## ; Th vi n BAI TAP 5 : Tổ chức chơng trình Th vi n ASSEMBLER16 đơn giảm ; ############################################################################### ## ; -; Tổ chức FILE Th vi n sử dụng ham dich vu ;... SEGMENT PUBLIC BUFFER DB 7 DUP(?) DIGIT DB ? n1 DW ? n2 DW ? sum DW ? BIEN_GET DW 0 BIEN_2NUM DW 0 Promp1 DB 'Nhap số thu 1: ' Promp2 DB 'Nhap số thu 2: ' Promp3 DB 'Tong số la: ' Fine LABEL BYTE Kỹ thuật vi xử lý 21 tin học chuyên ngành DATA_SEG ENDS ; -EXTRN WRITESTRING:NEAR EXTRN GETSTRING:NEAR EXTRN KET_THUC:NEAR ; ADDn PROC NEAR LEA DX, Promp1 MOV CX, Promp2- Promp1... LEA SI,BUFFER MOV DH,00H LOOP1: MUL BX MOV DL,[SI] SUB DL,'0' ADD AX,DX INC SI LOOP LOOP1 MOV [BIEN_2NUM],AX POP DX POP CX POP BX POP AX RET STR2NUM ENDP ; -ADDn1n2 proc near PUSH AX Kỹ thuật vi xử lý 23 tin học chuyên ngành MOV AX,n1 ADD AX,n2 MOV SUM,AX POP AX RET ADDn1n2 ENDP ; -WRITESum PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AX,Sum MOV BX,10 mov cx,0 GETADIGIT: MOV DX,0... nang cua he vi xu ly 16 bit can thiet ke ; -ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG ; DS trỏ tới manh lenh ; SS trỏ tới manh lenh CODE_SEG SEGMENT PUBLIC ; mở mang mã lenh Kỹ thuật vi xử lý 11 tin học chuyên ngành ; PUBLIC WRITE_CHAR WRITE_CHAR PROC FAR PUSH AX MOV AH,02H INT 21H POP AX RET WRITE_CHAR ENDP ; -; Thủ tục kết thúc nhiệm vụ hiện... PUBLIC GETSTRING GETSTRING PROC NEAR PUSH AX MOV AH,3FH INT 21H MOV [FLAG],AX POP AX RET GETSTRING ENDP ; ;Thủ tục nay de ghi TT vao tap tin hay TB vao/ra Kỹ thuật vi xử lý 25 tin học chuyên ngành ;từ vung dem DS:DX trỏ tới(co the file trong BX, ;số byte can doc trong CX ; PUBLIC WRITESTRING WRITESTRING PROC NEAR PUSH AX MOV AH,40H INT 21H... co the File trong BX, ;số luong byte trong CX Neu doc thành ;cong thi con tro File se dat o ngay sau ; phân vua doc ; GETSTR PROC NEAR DATA_SEG SEGMENT PUBLIC EXTRN FLAG:WORD Kỹ thuật vi xử lý 27 tin học chuyên ngành DATA_SEG ENDS PUSH AX PUSH BX PUSH CX PUSH DX MOV BX,00H ; the file MOV CX,07H ; số byte can doc MOV DX,OFFSET BUFFER ; dat DS:DX vao dau mang BUFFER CALL GETSTRING MOV

Ngày đăng: 16/05/2016, 13:57

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan