Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
181,94 KB
Nội dung
Hợp ngữ Khoa Điện tử - Viễn thông Trương Văn Thắng Giới thiệu Các khái niệm hệ thống số Chuyển đổi số Các ghi intel 8088, 8086 1/CÁC HỆ THƠNG SỐ • HỆ 10 10 11 12 13 HỆ 16 A B C D HỆ 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 2/Chuyển đổi số • a/Chuyển từ số b sang số thập phân(10) Ví dụ: chuyển từ số 10 sang số 10 12310 =100+20+3=1X102+2X10+3X100 dn-1dn-2….d1d0.d-1….d-m b số di số 0 1X23+1X21+1X20+1X2-2 * Đổi từ thập lục phân sang thập phân A4B516 10X163+4X162+11X161+5X160 =40960 + 1024 +176 + =42165 b/ Chuyển từ thập phân sang số b ví dụ: chuyển từ thập phân sang thập phân 123.5(10) 123:10=12 dư 3; 12:10=1 dư 2; 1:10=0 dư 1; 0.5x10=1 lẻ Chuyển từ thập phân sang số b dn-1bn-1+dn-2bn-2+…+d1b1+d0 (***) d-1b-1+d-2b-2+….+ d-mb-m (****) Đổi phần nguyên : chia cho số kết :thương số dư số If thương số tổ hợp dư số số cần tìm ngược lại tiếp tục chia nũa Đổi phần lẻ: nhân số tích phần: phần nguyên phần lẻ If phần lẻ kết quả:tổ hợp phần CÁC VÍ DỤ Đổi số 26 sang số nhị phân 26/2 =13 dư 13/2 =6 dư /2 =3 dư /2 =1 dư 1 /2 = dư 2610 110102 Đổi số 0.25 10sang nhị phân 0.25 x =0.5 lẻ 0.5 nguyên 0.5 x = 1.0 lẻ nguyên 0.2510 0.012 Đổi 27110 sang số thập lục phân 271 / 16 =16 dư 15 16 / 16 = dư /16 = dư 27110 10F16 Đổi nhị nhân sang thập lục phân ngược lại • Nhị phân thành thập lục phân 11001110.1102 CD.C • Thập lục phân sang nhị phân 1AF.8 16 000110101111.10002 3/Các ghi CPU 8088(8086) • Trong CPU intel có 14 ghi, chia thành nhóm a/ Nhóm ghi đa năng: ghi, 16bits AX( AH AL) (Accumulato ) BX(BH BL) (Base ) CX(CH CL) (Count ) DX(DH DL) (Data) Chức năng: tính tốn chuyển số liệu Vùng nhớ sở chia thành nhiều vùng nhỏ: Bảng vectors ngắt • Có loại ngắt: Ngắt BIOS ngắt DOS đặc biết là: Ngắt phần cứng Ngắt phần mềm • Bảng vectors ngắt: 1KB từ 03FFh chứa bảng vector ngắt Mỗi vector ngắt chiếm 4byte, 2byte đầu chứa offset 2byte chứa segment đoạn chương trình thực ngắt Ngắt_offset=N*4 Ngắt_segment=N*4+2 Ví dụ: [4]=15h Vùng tham số BIOS • Các thiết bị máy tính thơng qua CỔNG mà cổng thuộc địa vùng • Địa vùng từ 40h:0 40h:xxxx 40h:000040h:6 : Địa RS 232( Ngõ COM) 40h:08h 40h:0eh : địa ngõ Printer(LPT) 40h:1Ah : trỏ đầu bàn phím(keyboard)(int 16h) 40h:1Ch :con trỏ cuối bàn phím(keyboard)(int 9) Vùng tham số DOS • Bắt đầu từ địa 50h:0xxxx:xxxx • Các thiết bị DOS thông qua tên :COM1; COM2; LTP1; LTP2; CON; ….V.V (IO.SYS) • Các (interrupts) ngắt • Config.sys (BUFFERS; FILES) • Command trước nạp vào tách làm phần: COMMAND1 COMMAND2 -COMMAND1 chứa thành phần: thành phần kiểm tra command2 hay mất, ngắt: INT 24H lỗi Abort, Retry, Ignore; INT 23H CTRL_C; INT 22H kết Vùng nhớ mở rộng • Vùng có địa từ A0000hđến FFFFFh • Có kích thước 384KB • Có vùng sau: - A000h:0 buffers video chế độ đồ họa(graphics)cho cardv EGA, VGA * Độ phân giải(vi dụ:800x600) * pixell= bit(ví dụ: 8bits biểu diễn pixel) - B000h:0 buffers video chế độ text(mono) toa độ hình Ký tự= (hàng* 80+ cột) *2 Thuộc tính= (hàng* 80+ cột) *2+1 -B800h:0 buffers video chế độ đồ họa(graphics) cho card CGA Thủ tục(Procedure) • Cấu trúc Procedure Ten_procedure Proc near(far) … … ret ten_procedure endp • Ví dụ: in_chuoi proc near mov ah,09 int 21h ret Chương trình model small code org 100h start: jmp main st1 db ‘xin chao $’ in_chuoi proc near mov in_chuoi endp main proc near lea dx,st1 call in_chuoi int 20h … main endp end start Thủ tục(procedure) nhiều tập tin • Public ten_thu_tuc ten_Thu_tuc proc near(far) … …… ten_thu_tuc endp • Public ten_bien ten_bien kichthuoc liệu • Trong chương trình lớn khai báo sau EXTRN Ví dụ:vidu1.asm • model small • code • org 100h • begin:jmp main1 • public st1 • st1 db "xin chao cac ban$" • • main1 proc near • main1 endp Ví du 2:vidu2.asm • model small • code • org 100h • begin1:jmp main2 • public in_chuoi • in_chuoi proc • mov ah,09 • int 21h • ret • in_chuoi endp • main2 proc near Ví du 3:vidu3.asm • model small • code • org 100h • start:jmp main • main proc near • extrn st1:byte • extrn in_chuoi:near • lea dx,st1 • call in_chuoi • call ketthuc • main endp • ketthuc proc near • int 20h • ketthuc endp Dịch chương trình • • • • • Tasm vidu1; Tasm vidu2; Tasm vidu3; Tlink /t vidu3+vidu2+vidu1; IC 8255 CONTROL WORD ĐIỀU KHIỂN • Trước hoạt động: A1A0 = 11 CW = 80h(10000000B) GỞI RA(OUTPUT) PORT A A1A0 = 00 PORT B A1A0 =01 PORT C A1A0 =10 TRUYỀN QUA NGÕ COM1 ... 0.5x10=1 lẻ Chuyển từ thập phân sang số b dn-1bn-1+dn-2bn-2+…+d1b1+d0 (***) d-1b-1+d-2b-2+….+ d-mb-m (****) Đổi phần nguyên : chia cho số kết :thương số dư số If thương số tổ hợp dư số số cần tìm... 1101 2 /Chuyển đổi số • a /Chuyển từ số b sang số thập phân(10) Ví dụ: chuyển từ số 10 sang số 10 12310 =100+20+3=1X102+2X10+3X100 dn-1dn-2….d1d0.d-1….d-m b số di số 0