giao trinh ngon ngu lap trinh 1 8678

20 247 0
giao trinh ngon ngu lap trinh 1 8678

Đ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

s G I Á O DỤC VÀ Đ À O TẠO H À N Ộ I NGUYỄN THÀNH TRUNG G I Á O T R Ì N H NGÔN NGỮ LẬP TRÌNH ASSEMBLY (Dùng trường THCN) N H À XUẤT B Ả N H À N Ộ I - 2007 N H À XUẤT B Ả N H À N Ô I - TỐNG DUY TÂN, QUẬN HOÀN KIẾM, HÀ NỘI ĐT: (04) 8252916, 8286766, - FAX: (04) 9289143 GIÁO TRÌNH NGÔN NGỮ LẬP TRÌNH ASSEMBLY NHÀ XUẤT BẢN HÀ NỘI - 2007 Chịu trách nhiệm xuất bản: NGUYỄN KHẮC OANH Biên tập: PHẠM QUỐC TUẤN NGUYỄN THỊ THU HẰNG Bìa: TRẦN QUANG Kỹ thuật vi tính: HOÀNG THÚY LUÔNG Sửa bàn in: NGUYỄN THỊ THU HẰNG In 500 cuốn, khổ 17x24cm, Nhà in Hà Nội - Công ty Sách Hà Nội 67 Phó Đức Chính - Ba Đình - Hà Nội Quyết định xuất bản: 160-2007/CXB/446GT-27/HN, số 313/CXB ngày 02/3/2007 So in: 294/3 In xong nộp lưu chiểu quý IU năm 2007 Lời giới thiêu A ước ta bước vào thời kỳ công nghiệp hóa, Ì V đại hóa nhằm đưa Việt Nam trỏ thành nước công nghiệp văn minh, đại Trong nghiệp cách mạng to lớn đó, công tác đào tạo nhân lực giữ vai trò quan trọng Báo cáo Chính trị Ban Chấp hành Trung ương Đãng Cộng sản Việt Nam Đại hội Đáng toàn quốc lần thứ IX rõ: "Phát triển giáo dục đào tạo động lực quan trọng thúc đẩy nghiệp công nghiệp hóa, đại hóa, điều kiện đẽ phát triển nguồn lực người - yếu tô đế phát triển xã hội, tăng trường kinh tế nhanh bền vững" Quán triệt chủ trương, Nghị Đảng Nhà nước nhận thức đắn vé tầm quan trọng chương trình, giáo trình việc nâng cao chất lượng đào tạo, theo đê nghị Sỏ Giáo dục Đào tạo Hà Nội, ngày 23/9/2003, Úy ban nhân dán thành phố Hà Nội Quyết định số 5620/QĐ-UB cho phép sỏ Giáo dục Đào tạo thực đề án biên soạn chương trình, giáo trình trường Trang học chuyền nghiệp (THCN) Hà Nội Quyết định thể quan tâm sáu sắc Thành ủy, UBND thành phố việc nâng cao chất lượng đào tạo phát triển nguồn nhún lực Thủ đô Trên sở chương trình khung Bộ Giáo dục Đào tạo bơn hành kinh nghiệm rút từ thực tế đào tạo, Sở Giáo dục Đào tạo đạo trường THON tổ chức biên soạn chương trình, giáo trình cách khoa học, hệ thống cập nhật kiến thức thực tiễn phù hợp với đối tượng học sinh THCN Hà Nội Bộ giáo trình lài liệu giáng dạy học tập trường THCN Hà Nội, đồng thời tài liệu tham kháo hữu ích cho trường có đào tạo ngành kỹ thuật - nghiệp vụ đông đào bạn đọc quan tâm đến vấn đê hướng nghiệp, dạy nghê Việc tổ chức biên soạn chương trinh, giáo trình nhiều hoạt động thiết thực ngành giáo dục đào tạo Thủ đô để kỷ niệm "50 năm giải phóng Thù đô ", "50 năm thành lập ngành " hướng tới kỷ niệm "1000 năm Thăng Long - Hà Nội" Sở Giáo dục Đào tạo Hà Nội chân thành cảm ơn Thành ủy, UBND, sở, ban, ngành Thành phố, Vụ Giáo dục chuyên nghiệp Bộ Giáo dục Đào tạo, nhà khoa học, chuyên gia đầu ngành, giáng viên, nhà quán lý, nhà doanh nghiệp tạo điêu kiện giúp đỡ, đóng góp ý kiến, tham gia Hội đồng phản biện, Hội đồng thẩm định Hội nghiệm thu chương trình, giáo trình Đây lần Sở Giáo dục Đào tạo Hà Nội tố chức biên soạn chương trình, giáo trình Dù cố gắng chắn không tránh khỏi thiếu s ót, bất cập Chúng mong nhận ý kiến dóng góp bạn đọc đế bước hoàn thiện giáo trình lần tái sau GIÁM ĐỐC SỚ GIÁO DỤC VÀ ĐÀO TẠO Lời nói đẩu 'gòn ngữ Assembly hay gụi Hợp nqữ lù ngôn ngữ lập trình bậc Ì V thấp chí thi lệnh cúc từ tiếng Anh dược viết tắt cho hành dộng dó Các lệnh Hợp ngữ tương lác trực tiếp với ghi hay ô nhớ nằm phán cứng hệ thống vi xử lý Vì vậy, dể viết Hợp ngữ người lập trình phải có kiến thức vé phẩn cứng máy tính hệ vi xử lý Ưu điểm cùa Hợp ngữ cúc chương trình ứng dụng dược viết ngôn ngữ tốc độ xử lý tãiiíỊ lên thêm mười đến hai mươi phẩn trăm, mà lại chiếm nhớ chương trình viết ngôn ngữ bậc cao khác, bén cạnh Hợp ngữ thích nghi cách xác với đặc điểm hệ thống máy tính thiết bị ngoại vi Tút chức phần cứng thiết bị đêu thực dược chương trình viết bung Hợp nục Một ưu điểm nẹôn ngữ Hợp lì có thê liên kết với ngôn ngữ bậc cao khác c, Pascal tạo tối ưu chương trình sử dụng Ngày máy tính sứ dụng ngày rộng rãi lĩnh vực đo lường diêu khiển tự dộng, dớ yêu cẩu tốc độ, nhớ ấn định trước thiết bị việc sứ dụng Hợp ngữ cẩn thiết Mối loại máy lính đêu có dạng Họp ngữ riêng trình hợp dịch riêng gọi lờ Assembler Với máy tính PC- IDM có hai chương trình hợp dịch Macro Assembler (MASM) hãng Microsoỷt Turbo Assember (TASM) hãng Borland Giữa hai chương trình có khác đôi chút, công dụng tương thích với Trong giáo trình đề cập nhiều đến trình dịch hợp ngữ MASM cửa Microsoỷt, gọi trình dịch Macvo Assembler Đối tượng giáo trình sinh viên chuyên ngành kỹ thuật viên liu học trường Trung học kỹ thuật dạy nghề Đế học (lược người đọc Cấn có kiến thức vé kỹ thuật vi xử lý kiến trúc máy tính vù dã học qua ngôn ngữ lập trình Pascal Nội dung chương trình dược chia làm bấn chương với nội dim% sau: Chương l: Giới thiệu tóm tắt số phần vi xử lý 8086, 8088 loại liệu, cấu trúc chung vi xử lý 80x8, số lượng công dụng ghi, khái niệm tác dụng ngắt, kiểu định địa chi cho toán họng khuôn dạng tệp lệnh Chương 2: Trình bày vê cú pháp hợp li gí?, cách khai báo nhớ biến, cấu trúc chương trình Assưìììh dơn giàn, bước lập trình cần thực hiện, cách sử dụng cấu trúc vào viết Hợp ngữ, Phân biệt ý ưa chương trình EXE COM Chương 3: Trình bày phương pháp liên kết ngôn ngữ bậc cao Pascal với ngôn ngữ Assetnbly Chương 4: Các toán lập trình với số nguyên, lập trình cho chuỗi thiết bị vào/ra Phụ lục: Giới thiệu ngắt DOS BIOS gi úp người học tra cứu, sử dụng toán lập trình Tóm lại, giáo trình nhầm giúp cho sinh viên kiên thức bàn vé lập trình Hợp ngữ, đồng thời củng cố thêm kiến thức dược học phần cứng máy tính, kỹ thuật vi xử lý nói chung Chương Ì Tổ CHỨC CỦA BỘ VI XỬ LÝ 8086 ì CÁC DẠNG Dữ LIỆU c BẢN CỦA BỘ VI x LÝ Dạng số hệ đếm Ngày chúng la thường dùng 10 chữ số 0, 1,2, 3, 4, 5, 6, 7, 8, đổ biểu diễn phép tính toán trao đổi công việc Nó hệ số mười hay nói gọn hệ mười Trong máy tính khác Máy tính cấu tạo liên kết hệ thống chất bán dẫn hệ mạch điện tử Vì hoạt động máy hai trạng thái có điện điện mạch điện tử Do để biếu diễn giá trị số phải dùng hệ số hai (Binary number system, viết tắt hệ B) Ì giá trị có chữ số hệ hai (Binary digit, viết tắt bít) Hệ hai hệ đếm dùng máy tính Một số hệ hai gồm cụm bít gọi Byte, cụm 16 bít tạo thành từ (Word), 32 bít tạo thành từ kép (double vvord) Chữ số bên trái dãy số hệ hai gọi bít có ý nghĩa lớn (Most significant bít, MSB), bít cuối dãy hệ hai có ý nghĩa bé (Least significant bít, LSB) Một số hệ mười viết sau: 78342,56, có giá trị tổng cùa tích 7, 8, 3, 4, 2, 5, với trọng số 10' tương ứng sau: 78342,56 = 7xl0 + 8x10-*+ 3xl0 + 4X10 + 2x10° + 5x10"'+ 6x10-2 Tương tự vậy, số hệ hai viết sau: 10110,01, có giá trị tổng tích 1,0,1,1,0,0,1 với trọng số 2' tương ứng sau: 10110,01 = Ì X + X + Ì X + Ì X + X 2° + X 2-' + Ì X 2-2 Giữa hệ mười hệ hai tồn hệ lai hệ BCD cho số hệ mười mã hoa hệ hai (Binary Coded Decimal number) thích hợp cho thiết bị đo cho phần hiển thị số đầu dùng loại đèn số khác ta dùng số hệ hai để mã hoa số hệ mười có giá trị năm tron° khoảng Như ta không dùng hết tổ hợp có cùa bít Vì tầm quan trọng cùa sỏ BCD nên vi xử lý thưừng có lệnh thao tác với chúng Ví dụ: Số 840 biểu diễn theo kiểu số BCD 1000 0100 0000 Kết gợi ý cho ta cách thức chuyến đổi loại sô Nếu ta dùng hệ hai để biểu diễn số có giá trị lớn ta gặp điều bất tiện số hệ hai thu dài Ví dụ để biểu diễn số 255 ta cần đến bít viết sau: 255 = l i u l i u B Trong thực tế để viết kết biêu diễn cùa số cho gọn lại người ta tìm nhóm số hệ hai (Ì nibble) thành số hệ mười sáu Khác với hệ BCD vừa nói, hệ 16 dùng hết tổ hợp bít để biểu diễn giá trị số Để làm điều người ta sử dụng chữ số sẵn có hệ muôi để biểu diễn giá trị số ứng với dùng thêm chữ A F để biếu diễn giá trị lại ứng với 10 15 Đế phân biệt số hệ mười sáu với số hệ khác ta kèm thêm chữ H cuối Ta dễ nhận thấy số mười phận hệ 16 Hệ hai 0000 Hệ 16 Hệ hai 1000 Hệ 16 0001 1001 0010 1010 A 0011 lon B 0100 1100 c 0101 noi D 0110 mo E om nu F Chuyền đổi hệ đêm Đổi sỏ hệ mười sang hẹ hai Quy tắc: Lấy số cần đổi chia cho ghi nhớ phần dư lá) thương phép chia trước chia cho ghi nhớ phần dư Làm thương Đáo ngược thứ tự dãy sỏ dư dược chữ số hệ hai cần tìm Trong trường hợp số hệ mười cần đổi có thêm phán lé cho dâu phay ta phải đổi rẽ phần sau cộng kết lại Đỏi với phần nguyên ta làm theo cách nói liên Riêng đỏi với phần sau dấu phay ta đổi theo quy tắc trình bày sau Lấy số cần đổi nhân với tích nhận gồm phần nguyên phần lé nhị phân lấy phần lé nhị phân tích thu nhân liếp với Làm tích chẩn Chọn riêng phần nguyên (phần trước dấu phẩy) tích thu xếp lại chữ sô sau dấu phẩy hệ hai cần tìm Ví dụ: Đổi 0,125 số hệ hai Ta thực phép nhân theo bước trên: 0.125 X 0,250 0,250 X 0,500 0,500 X 1,000 thu kết 0,125 = 0,001 B (phần đóng khung) Kết hợp ví dụ lại, phải đổi số 34,125 hệ hai ta thu kết cuối 34,125 = 100010,001 B Đổi sô hệ hai hệ sô Hex: Ví dụ: 2B3Ch đổi hệ hai B 0010 lon c 0011 1100 Đổi sô hệ thập phản hệ sò Hex Ví dụ: Đổi số 1978 hệ Hex Đầu tiên chia 1978 cho 16 nhân thương số 123 số dư 10 1978 = 123 X 16 + 10 số dư hàng đơn vị số biêu diễn dạng số Hex 10 = Ah Cứ liếp tục chia thương số Chuyển đổi số dư Hcx ghép chúng lại với theo thứ tự ngược lại 1978 = 123 X 16 + 10(Ah) 1978 = 7BAh 123= 7xl6+ll(Bh) = X 16 + 7(7h) Các phép tính vối số nhị phân hệ Hexa Sô nhị phân: - Phép cộng: +0=0 0+1 = 1+0=1 + 1=0 dư Ì Ví dụ: + no 011 no 1001 phần dư - Phép trừ: 0-0 = 0-1 = 1-0=1 1-1=0 nợ Ì Ví dụ: no -011 li 011 10 phần nợ Sô Hexa: Bảng cộng số Hex ỉ A B c D li F 1 Ả B c D F F A B c D E F 10 2 A B c D E F lon 3 A B c D E F 10 l i 12 4 A B c D E F 10 11 12 13 5 A B c D E F 10 l i 12 13 14 6 A B c D E F 10 l i 12 13 14 15 7 A B c D E F 10 l i 12 13 14 15 16 8 A B c D E F 10 l i 12 13 14 15 16 17 9 A B c D E F 10 l i 12 13 14 15 16 17 18 A A B c D E F 10 11 12 13 14 15 16 17 18 19 B B c D E F 10 l i 12 13 14 15 16 17 18 19 1A c c D E F 10 l i 12 13 14 15 16 17 18 19 1A1B D D E F 10 l i 12 13 14 15 16 17 18 19 1A1B 1C E E F 10 l i 12 13 14 15 16 17 18 19 1A1B 1C1D F F 10 l i 12 13 14 15 16 17 18 19 1A1B 1C1D1E Ví dụ: 5B39h + 7AF4h D62Dh Sử dụng bảng cộng ta có thê tra phép trừ Ví dụ: D26F BA94 17DB Dạng ký tự Được lưu nữ theo dạng mã ASCII (American Standard Codc information Intcrchangc) Mã chuẩn, mồi ký tự chiếm byte Máy tính vé ký lự ASCII mà chi xem chúng byte với ngoại lệ Trong báng mã ASCII tiêu chuẩn người la dùng bít để mã hoa ký tự thỏníi dụng bảng mã có 128 ký tự ứng với mã số từ 0-127 Khi tra bàng ta đọc mã ký tự theo thứ lự cột-hàng Bàng mã ASCII (American Standcưd Code inỊonnaiion Interchange Mã tiên chuẩn /rao dổi thỏm; liu) Hexadeđmal ì 16 ì 32 48 @ 64 p 17 33 A Q 49 65 81 18 34 50 R b 66 82 19 35 c s 51 67 83 20 36 D T 52 68 84 21 % 37 E u 53 69 85 22 & 38 V F 54 70 86 í 23 w G 55 71 87 24 12 t # $ 39 ( 40 H 56 72 X 96 80 a b c d e 88 97 f g h p q r 98 s 99 t 100 u 112 113 114 115 116 loi 117 102 V 118 103 w 119 104 X 120 ) ì 57 Y A ọ 25 b 10 26 c 11 27 28 44 D 12 E 13 29 45 F 14 30 46 > N 62 78 93 A 94 15 31 47 () 63 70 95 41 + / 42 58 43 59 J k z M 90 74 75 < L 60 76 61 89 73 77 [ \ i j 105 ỵ ' 121 l 106 122 9i 107 123 92 108 124 in 109 125 k n 110 126 IU 127 Biểu diễn sô nguyên nhị phân máy tính 5.1 Biểu diễn số nguyên không dâu Số nguyên không dấu (unsigned integer) biêu diễn sô nguyên dương Số nguyên không dấu thích hợp để biêu diễn đại lượng dương chẳng hạn địa chi cua ó nhớ, đếm hay mã ASCII ký tự (chúng ta thấy sau này) Bởi số nguyên khôn!! dấu định nghĩa số dương nên không cần dùng bít để biểu diễn dấu bít byte hay 16 bít cùa word dùng để biểu diễn số Số nguyên không dấu lớn chứa byte l i u l i u = FFh = 255 Số nguyên không dấu lớn chứa Word là: l i u l i u l i u l i u l i u = FFFFh = 65535 Trong trường hợp không đủ sứ dụng hai vvord 13 5.2 Biếu diên số nguyên có dấu Kít dấu Số nguyên có dấu (signed inleger) có the số dương số âm Bít nặng nhài MSB dùng đe biêu diễn dâu cùa sò MSB biếu diễn số dương Ì biêu diễn sô âm Các số âm lưu máy tính dạng số bù đè hiếu khái niệm số bù ĩ trước liên chúng la tìm hiểu khái niệm sô bù Số bù Ì cùa sô nguyên nhận cách lấy phần bù cùa bít có nghĩa đảo bít: thay mỏi bi! Ì ngược lại, Ì Ví dụ: Tim sỏ bù Ì cùa Số bù = 0000 0000 0000 0101 = l i u l i u l i u 1010 Số bù hai: Đế nhận sò bù số nguvên ta chi việc cộng Ì vào sò bù Ì cùa Ví dụ: Tim số bù 5? Theo kết trẽn Số bù Ì cùa l i u l i u l i u 1010 +]_ Số bù ĩ l i u l i u l i u lon Bây cộng với số bù cứa Sốbù2cúa5 liu liu liu lon số +0000 0000 0000 0101 Tống nhận 10000 0000 0000 0000 Chúng ta nhận số 17 bít word nhớ chi lưu 16 bít, phần nhớ Ì nằm bít già msb bị mất, kết quà 16 bít Do tổng cùa số bù cùa số bù rõ ràng biểu diễn giá trị -5 14 l i CÁC BỘ VI XỨ LÝ 80x86 CỦA ITKL Giói thiệu vi xử lý Bộ óc cùa máy tính vi xử lý thực tất cá cõng việc xử lý lệnh liệu Các vi xứ lý khác yếu tốc độ chúng, dung lượng nhớ, ghi bus liệu Một bus liệu chuyên liệu vi xứ lý nhớ ghi phần bẽn (nghĩa quán lý việc lưu thông liệu) Sau mỏ tá vắn tất vi xử lý khác Intcl Bộ vi xử lý 8088/80188: Các vi xử lý có ghi 16-bit bus liệu 8-hít có thê định địa chi nhớ nội đến Ì M (với 20 đường địa chi) Các ghi cổ thê xử lý thời byte bus liệu lần chí có the chuyên byte 80188 phiên cùa 8088 với vài lệnh thủm vào Cá hai loại vi xử lý hoạt động chế độ thực (real mocle), nghĩa chương trình thời điểm Bộ vi xử lý 8086/80186: ' Các vi xử lý tương tự 8088/80188 bus liệu 16-bit chạy nhanh 80186 phiên 8086 với vài lệnh thêm vào Bộ vi xử lý 80286: Bộ vi xử lý chạy nhanh vi xử lý trước định địa chi nhớ lên đến 16 MB (với 24 đường địa chi) Bộ vi xử lý hoạt động chế độ thực chế độ bảo vệ (protccted modc) cho lập trình đa nhiệm (multitasking) Bộ vi xử lý 80386: Bộ vi xử lý có ghi 32-bit bus liệu 32-bit, định địa chi nhớ lên đến GB (với 32 đường địa chi) Bộ vi xử lý hoạt động chế độ thực chế độ bảo vệ cho lập trình đa nhiệm Bộ vi xử lý 80486: Bộ vi xử lý có ghi 32-bit bus liệu 32-bit (mặc dù có phiên có bus liệu 16-bit) thiết kế với đặc tính nâng cao 15 Bộ vi xử lý có the hoạt động chế độ thực chế độ bảo vệ cho lập trình đa nhiệm Bộ vi xứ lý Pcntium: Bộ vi xử lý có ghi 32-bit bus liệu 64-bit, có thực thi nhiều mội lệnh Ì chu kỳ xung clock Cấu trúc vi xử lý 80x86 BU Thanh ghi đa Thanh ghi trỏ chi số Bìu AI BL CL DL ẢM lỉu CH DU SP BP SI DI cs DS ss ES Thanh ghi đoan Bus ALU CU Đệm lệnh IP Bộ vi xử lý chia thành đơn vị logic: đơn vị thực thi lệnh EU (execution unit) đơn vị giao tiếp bus Bìu (bus interíace unit) hình 16 Vai trò EU thực thi lệnh Bìu phán phối lệnh liệu đến BU EU chứa đơn vị số học-logic ALU (arithmetic logic unit), đơn vị điêu khiến c u (control unit) tập ghi Các đạc trưng cung cấp khả thực thi chi thị thực phép toán số học-logic Execution Unit: Bua Interíace: đơn vị xử lý EU đơn vị giao tiếp bus Bìu Program control: điều khiên chương trình Bus control unit: đơn vị điều khiên bus Instruction Queue: hàng đợi lệnh Arithmethic-Logic Unit: đơn vị số học logic ALU Control Unit: đơn vị điều khiển c u Flags register: ghi cờ Instruction Pointer: trỏ lệnh rp Nhiệm vụ quan trọng Bìu quản lý đơn vị điều khiến bus, ghi segment hàng đợi lệnh (instruction queue) Bìu điểu khiển bus để chuyển liệu đến EU, đến nhớ đến thiết bị xuất nhập bên ghi segment cho phép ta định địa nhớ Nhiệm vụ khác Bìu tìm nạp lệnh Vì lệnh chương trình thực thi nhớ, Bìu phải tìm nạp lệnh từ nhớ đặt chúng vào hàng đợi lệnh EU Bìu làm việc song song, Bìu trước bước EU thông báo cho Bìu cần truy xuất liệu nhớ thiết bị ngoại vi EU yêu cầu thị từ hàng đợi lệnh Bìu Trong EU bận thực thi lệnh, Bìu tìm nạp lệnh khác từ nhớ Việc tìm nạp trước giúp tăng tốc độ xử lý vi xử lý Các vi xử lý 80486 trở trước sử dụng kỹ thuật đường ống đơn (single pipeline) nên bị hạn chế việc thực thi lệnh, lệnh phải hoàn tất trước bắt đầu lệnh Pentium vi xứ lý sau có cấu trúc đường ống đôi (double pipeline) cho phép chúng thực song song nhiều thao tác 17 HI CÁC THANH GHI CÙA BỘ VI x LÝ 8086/8088 Thông tin lưu giữ bên vi xử lý nằm ghi Bộ vi xử lý 8086/8088 có 14 ghi Các ghi phán chia theo chức chúng dạng sau: Các ghi liệu AX, BX, cx, DX Gồm ghi, người lập trình sử dụng cho thao tác với liệu Bộ vi xử lý có thê thao tác với liệu nhớ tốc độ xử lý nhanh liệu lưu ghi Vì vi xử lý đại cấu tạo nhiều ghi Các bytc cao bytc thấp ghi truy nhập riêng biệt Byte cao ghi AX gọi AU, byte thấp gọi AL Tương tự byte cao bvte thấp ghi BX c x DX BU BL CH CL, DH DL Nhờ điều mà ta có thêm nhiều ghi làm việc với số liệu kích thước bytc Bốn ghi có công dụng chung ghi liệu, chúng thực chức đặc biệt sau: AX 15 AH 87 AL bít BX 15 BH 87 BL Obit cx 15 CH 87 CL Obit DX 15 DH 87 DL Obit - Thanh ghi AX (Accumulator register): Thanh ghi chứa AX ghi sử dụng lệnh số học, logic chuyên liệu việc sù dụng chúng tạo mã máy ngắn - Thanh ghi BX (Base register): Thanh ghi sở BX đóng vai trò ghi địa chí 18 - Thanh ghi CXịCount register): Thanh ghi đếm c x đóng vai trò đếm vòng lặp, CL sứ dụng biến đếm lệnh dịch hay quay vòng - Thanh ghi DX(Daia register): Thanh ghi liệu DX sử dụng thao tác nhân chia, sử dụng thao tác vào/ra (in/out) Các ghi đoạn cs, DS, ES, ss Một chương trình ngôn ngữ máy điên hình gồm lệnh liệu Ngoài có cấu trúc liệu khác gọi ngăn xếp (Stack) vi xử lý sử dụng để thực lời gọi thủ tục Mã, liệu ngăn xếp chương trình nạp vào đoạn nhớ khác nhau, ta gọi chúng đoạn mã (Code segment), đoạn liệu (Data segment), đoạn ngăn xếp (stack segment) Để theo dõi đoạn khác chương trình, 8088 cung cấp ghi đoạn 16 bít để chứa địa chi đoạn Đó ghi cs, DS ss chứa địa chi đoạn mã, đoạn liệu đoạn ngăn xếp Nếu chương trình cần truy nhập đến đoạn liệu thứ hai sử dụng ghi đoạn liệu phụ ES (Extra segment) Tại thời điểm, chì ô nhớ định địa ghi đoạn truy nhập Có nghĩa chí có đoạn nhớ hoạt động, nhiên nội dung ghi đoạn thay đổi chương trình để truy nhập đến đoạn khác Các ghi trỏ số IP Con trỏ lệnh (Instruction Pointer): Luôn trỏ vào lệnh thực đoạn mã cs BP Con trỏ sở (Base Pointer): Luôn trỏ vào liệu nằm đoạn ngăn xếp ss SP Con trỏ ngăn xếp (Stack Pointer): Luôn trỏ vào đính thời ngăn xếp nằm đoạn ngăn xếp ss SI Chỉ số gốc (Source index): Chi vào liệu đoạn liệu DS DI Chi số đích (Destination index): Chi vào liệu đoạn liệu ES 19 Thanh ghi cờ Là ghi 16 bít, có bít đế làm bít cờ chia bít điều kiện bít điều khiển X X X X o D ì T s z X A X p X c X không định nghĩa Các cờ cụ thể: c CF (Carry flag) Cờ nhớ: CF = Ì Ì có nhớ p PF (Parity flag) Cờ Parity: PF = Ì số chữ số kết số chẵn A AF (Auxihary carry flag) AF = Ì có nhớ mượn từ số BCD thấp (4bit thấp) sang số BCD cao (4bit cao) z ZF (Zero flag) Cờ rỗng: ZF = Ì kết s SF (Sign flag) Cờ dấu: SF = Ì kết âm o OF (Overflow flag) Cờ tràn: OF = Ì kết số bù vượt giới hạn biểu diễn dành cho T TF (Tráp flag) Cờ bẫy: TF = Ì vi xử lý làm việc chế độ chạy lệnh ì IF (Interrupt enable flag) Cờ cho phép ngắt: IF = Ì vi xử lý cho phép yêu cẩu ngắt (Che được) tác động D- DF (Direction flag) Cờ hướng: DF = Ì vi xử lý làm việc với chuỗi ký tự từ phải sang trái (từ địa chí thấp tới địa cao) IV NGẮT VÀ PHÂN LOẠI NGẤT Khái niệm Ngắt chương trình Thủ tục Hàm có sẵn máy Hàm ngắt tên mà thay vào Ì số O FF Mỗi hàm ngắt lại chứa bên nhiều hàm Phân loại ngắt Có loại ngắt sau: 20 [...]... 16 17 18 A A B c D E F 10 11 12 13 14 15 16 17 18 19 B B c D E F 10 l i 12 13 14 15 16 17 18 19 1A c c D E F 10 l i 12 13 14 15 16 17 18 19 1A1B D D E F 10 l i 12 13 14 15 16 17 18 19 1A1B 1C E E F 10 l i 12 13 14 15 16 17 18 19 1A1B 1C1D F F 10 l i 12 13 14 15 16 17 18 19 1A1B 1C1D1E 0 Ví dụ: 5B39h + 7AF4h D62Dh Sử dụng bảng cộng ta có thê tra ra các phép trừ Ví dụ: D26F BA94 17 DB 4 Dạng ký tự Được... c D li F 1 0 1 2 3 4 5 6 7 8 9 Ả B c D F F 1 2 3 4 5 6 7 8 9 A B c D E F 10 2 2 3 4 5 6 7 8 9 A B c D E F lon 3 3 4 5 6 7 8 9 A B c D E F 10 l i 12 4 4 5 6 7 8 9 A B c D E F 10 11 12 13 5 5 6 7 8 9 A B c D E F 10 l i 12 13 14 6 6 7 8 9 A B c D E F 10 l i 12 13 14 15 7 7 8 9 A B c D E F 10 l i 12 13 14 15 16 8 8 9 A B c D E F 10 l i 12 13 14 15 16 17 9 9 A B c D E F 10 l i 12 13 14 15 16 17 18 A A B... 21 % 37 5 E u 53 69 85 7 6 22 & 38 V 6 F 54 70 86 í 7 23 w 7 G 55 71 87 8 24 8 12 t # $ 39 ( 8 40 H 56 72 X 7 6 96 80 a b c d e 88 97 f g h p q r 98 s 99 t 10 0 u 11 2 11 3 11 4 11 5 11 6 loi 11 7 10 2 V 11 8 10 3 w 11 9 10 4 X 12 0 9 ) ì 9 57 Y A ọ 25 b 10 26 c 11 27 28 44 D 12 E 13 29 45 F 14 30 46 > N 62 78 1. .. 30 46 > N 62 78 1 93 A 94 15 31 47 9 () 63 70 95 41 + / 42 58 43 59 J k z M 90 74 75 < L 60 76 61 89 73 77 [ \ i j 10 5 ỵ ' 12 1 l 10 6 12 2 9i 10 7 1 123 92 1 108 1 124 in 10 9 1 125 k n 0 11 0 12 6 IU 12 7 5 Biểu diễn sô nguyên nhị phân trong máy tính 5 .1 Biểu diễn số nguyên không dâu Số nguyên không dấu (unsigned integer) biêu diễn các sô nguyên dương Số nguyên không dấu rất thích hợp để... bảng mã này sẽ có 12 8 ký tự ứng với mã số từ 0 -12 7 Khi tra các bàng này ta đọc mã của ký tự theo thứ lự cột-hàng Bàng mã ASCII (American Standcưd Code inỊonnaiion Interchange Mã tiên chuẩn /rao dổi thỏm; liu) Hexadeđmal 0 1 2 0 ì 16 0 ì 4 5 32 0 48 @ 64 p 2 1 17 33 1 A Q 49 65 81 3 2 18 34 2 50 R b 66 82 4 3 19 35 3 c s 51 67 83 5 4 20 ... 0000 010 1 5 = l i u l i u l i u 10 10 Số bù hai: Đế nhận được sò bù 2 của một số nguvên ta chi việc cộng Ì vào sò bù Ì cùa nó Ví dụ: Tim số bù 2 của 5? Theo kết quả ở trẽn Số bù Ì cùa 5 l i u l i u l i u 10 10 +]_ Số bù ĩ của 5 l i u l i u l i u lon Bây giờ hãy cộng 5 với số bù 2 cứa nó Sốbù2cúa5 liu liu liu lon số 5 +0000 0000 0000 010 1 Tống nhận được 10 000 0000 0000 0000 Chúng ta nhận được một số 17 bít... hoặc hơn nữa 13 5.2 Biếu diên số nguyên có dấu Kít dấu Số nguyên có dấu (signed inleger) có the là số dương hoặc số âm Bít nặng nhài MSB được dùng đe biêu diễn dâu cùa sò MSB bằng 0 biếu diễn số dương còn bằng Ì biêu diễn sô âm Các số âm được lưu trong máy tính dưới dạng số bù 2 đè hiếu được khái niệm số bù ĩ trước liên chúng la hãy cùng nhau tìm hiểu khái niệm sô bù 1 Số bù Ì cùa sô nguyên nhận được... mocle), nghĩa là một chương trình ở một thời điểm Bộ vi xử lý 8086/8 018 6: ' Các bộ vi xử lý này tương tự như 8088/8 018 8 nhưng bus dữ liệu 16 -bit và chạy nhanh hơn 8 018 6 là phiên bản của 8086 với một vài lệnh được thêm vào Bộ vi xử lý 80286: Bộ vi xử lý này chạy nhanh hơn các bộ vi xử lý trước đó và có thể định địa chi một bộ nhớ lên đến 16 MB (với 24 đường địa chi) Bộ vi xử lý này có thế hoạt động ở chế... hiện các chức năng đặc biệt sau: AX 15 AH 87 AL 0 bít BX 15 BH 87 BL Obit cx 15 CH 87 CL Obit DX 15 DH 87 DL Obit - Thanh ghi AX (Accumulator register): Thanh ghi chứa AX là thanh ghi được sử dụng trong các lệnh số học, logic và chuyên dữ liệu vì việc sù dụng chúng tạo ra mã máy ngắn nhất - Thanh ghi BX (Base register): Thanh ghi cơ sở BX đóng vai trò thanh ghi địa chí 18 - Thanh ghi CXịCount register):... đếm hay mã ASCII của ký tự (chúng ta sẽ thấy sau này) Bởi vì các số nguyên khôn!! dấu được định nghĩa là các số dương nên không cần dùng bít nào của nó để biểu diễn dấu do đó 8 bít của một byte hay 16 bít cùa một word đều được dùng để biểu diễn số Số nguyên không dấu lớn nhất có thể chứa trong một byte là l i u l i u = FFh = 255 Số nguyên không dấu lớn nhất có thể chứa trong một Word là: l i u l i u ... 13 14 15 16 17 18 19 B B c D E F 10 l i 12 13 14 15 16 17 18 19 1A c c D E F 10 l i 12 13 14 15 16 17 18 19 1A1B D D E F 10 l i 12 13 14 15 16 17 18 19 1A1B 1C E E F 10 l i 12 13 14 15 16 17 18 ... F 10 l i 12 13 14 6 A B c D E F 10 l i 12 13 14 15 7 A B c D E F 10 l i 12 13 14 15 16 8 A B c D E F 10 l i 12 13 14 15 16 17 9 A B c D E F 10 l i 12 13 14 15 16 17 18 A A B c D E F 10 11 12 13 ... 55 71 87 24 12 t # $ 39 ( 40 H 56 72 X 96 80 a b c d e 88 97 f g h p q r 98 s 99 t 10 0 u 11 2 11 3 11 4 11 5 11 6 loi 11 7 10 2 V 11 8 10 3 w 11 9 10 4 X 12 0 ) ì 57 Y A ọ 25 b 10

Ngày đăng: 02/12/2016, 22:05

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

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

Tài liệu liên quan