Nền vi xử lý thế hệ mới của Intel ( Core 2 Dual) chính thức được hãng này công bố toàn cầu hôm 28/7/2006 với 10 loại chip cho máy tính để bàn và xách tay. Tích hợp 291 triệu bóng bán dẫn, tiêu thụ điện năng ít hơn 40%, dòng chip được mong đợi từ lâu này có sự hỗ trợ của hơn 550 thiết kế hệ thống - lớn nhất trong lịch sử của Intel.
41 trang |
Chia sẻ: vietpd | Lượt xem: 1698 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu về vi xử lý intel – core 2 dual, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
*****************************
BÁO CÁO BÀI TẬP NHÓM
MÔN : KỸ THUẬT VI XỬ LÝ
ĐỀ BÀI : TÌM HIỂU VỀ VI XỬ LÝ INTEL – CORE 2 DUAL
Giảng viên : Hoàng Xuân Dậu
Lớp : D09CNTT1
Nhóm 3:
Nguyễn Công Đức
Đỗ Thanh Duẩn
Lê Đại Dương
Nguyễn Văn Đường
Đặng Thanh Hà
Mục lục
Giới thiệu xuất sứ của Core 2 Dual
Nội dung chính
Sơ đồ kiến trúc Core
Cấu tạo phần cứng Core 2 Dual
Tập lênh của Core 2 Dual
Các đặc điểm công nghệ mới
Tài liệu tham khảo.
I . Giới thiệu xuất xứ của Core 2 Duo
Nền vi xử lý thế hệ mới của Intel ( Core 2 Dual) chính thức được hãng này công bố toàn cầu hôm 28/7/2006 với 10 loại chip cho máy tính để bàn và xách tay. Tích hợp 291 triệu bóng bán dẫn, tiêu thụ điện năng ít hơn 40%, dòng chip được mong đợi từ lâu này có sự hỗ trợ của hơn 550 thiết kế hệ thống - lớn nhất trong lịch sử của Intel.
Vào tháng 1 năm 2006 AMD chính thức tung ra thị trường thế hệ CPU K8 sử dụng socket AM2( socket AM2 có 940 chân).Thế hệ CPU K8 này hỗ trợ Ram DDR2 và có thêm một số tính năng và công nghệ mới như: công nghệ máy tính ảo AMD virtualiation, công nghệ “ Integrated Memory Controller ” giúp bảo đảm độ trễ ngắn trong quá trình CPU xử lý dữ liệu. Thời điểm đó vi sử lý K8 của AMD được xem là bộ xử lý với giải pháp tiến bộ nhất, hiển nhiên AMD hơn hẳn Intel về nhiều mặt : ít nhất là về mặt công nghệ Intel còn tỏ ra lạc hậu hơn so với AMD.
Trước thời gian này Intel vẫn còn đang sử dụng kiến trúc NetBurst với thế hệ Pentium 4 chạy với tốc độ 1.5Ghz trên nền Socket 423 chân. Tuy nhiên không muốn AMD vượt mặt quá lâu Intel đã đưa ra một chiến lược công nghệ mới cho riêng mình: công nghệ Dual core ( công nghệ 2 nhân) có tích hợp thêm công nghệ Hyper Threarding ( Công nghệ Siêu phân luồng ) đã ra đời vào năm 2002.Tiêu biểu với sản phẩm Core Duo (được biết đến với tên mã là Yonah), Core Duo là một tên thương mại cho Pentium M processor có hai lõi xử lý và được sản xuất dưới công nghệ 90 nm .
Với sự ra đời của công nghệ Dual Core vị thế của Intel đã được lấy lại nhanh chóng. Không chỉ dừng lại ở đó Intel đã cho ra đời thế hệ lõi kép thứ hai với sản phẩm tiêu biểu là Core 2 Duo. Core 2 Duo là tên thương mại cho bộ vi xử lý có tên mã là Merom (cho các máy laptop) hoặc Conroe (cho các máy desktop), sử dụng kiến trúc mới lõi siêu nhỏ.
Ý tưởng và nền tảng cho Merom bắt đầu từ Banias, tên mã của chip Pentium M đầu tiên. Sau đó, Dothan được giới thiệu là phiên bản Banias 90 nm. Tháng 1 năm đó chip Yonah (Core Duo) 65 nm ra đời và đến tháng 3 thì được quảng bá rộng rãi như vi xử lý lõi đôi đầu tiên cho nền di động của Intel.
Đội thiết kế tại Haifa (Israel) do Mooly Eden (hiện là Phó chủ tịch kiêm tổng giám đốc nền tảng di động của Intel) lãnh đạo là những người phát minh ra nền Banias và cũng là những người phát triển vi kiến trúc Core.
Thực ra đây là kiến trúc tương tự như kiến trúc siêu nhỏ được sử dụng trong Pentium M nhưng có thêm nhiều tính năng mới được bổ sung, như hỗ trợ SIMD instructions, công nghệ Virtualization Technology cho phép chạy cùng lúc nhiều HĐH, tăng cường bảo vệ hệ thống trước sự tấn công của virus (Execute Disable Bit), tối ưu tốc độ VXL nhằm tiết kiệm điện năng (Enhanced Intel SpeedStep Technology), quản lý máy tính từ xa (Intel Active Management Technology).
Các chip mới có 291 triệu bóng bán dẫn, 2 lõi dùng bộ nhớ đệm L2 cache (4 MB cho Core 2 Duo E6000 và T7000; 2 MB cho T5000 và phiên bản E4000). Trong tổ hợp "Core": Woodcrest (Xeon 5100) và 2 chip Core 2 Duo Merom và Conroe thì Merom cung cấp nền tảng công nghệ cho Conroe và Woodcrest.
Core 2 Duo được phát hành dưới dạng các sản phẩm E6000 (trước đây mang tên mã Conroe) dành cho máy tính để bàn và dòng T5000/T7000 (tên mã trước đây là "Merom") dành cho máy xách tay. Chữ "E" biểu thị mức tiêu thụ năng lượng 50 watt và cao hơn (dòng chip chủ đạo E6000 thuộc nhóm tiêu thụ 65 watt); chữ "T" được dùng cho các chip tiêu thụ từ 25 đến 49 watt.
Core 2 Duo với tên mã Conroe có 291 triệu transistor, bộ nhớ đệm L2 4 MB, bus hệ thống 1066 MHz, socket 775LGA. Một số BXL thuộc dòng này:E6600 (2,4 GHz), E6700 (2,66 GHz).
Core 2 Duo với tên mã Allendale (hay Conroe-L) E6300 (1,86 GHz), E6400 (2,13 GHz) có 167 triệu transistor, bộ nhớ đệm L2 2MB, bus hệ thống 1066 MHz, socket 775LGA. Riêng E4300 (1,8 GHz) xuất hiện năm 2007 có bộ nhớ đệm L2 2 MB, bus 800 MHz, không hỗ trợ Virtualization Technology.
Core 2 Duo tên mã Merom dành cho MTXT có công suất tiêu thụ chuẩn TDP là 35W và gây ấn tượng sâu sắc với công suất 5W khi chạy kiểu ULV (Ultra Low Voltage) . Intel tuyên bố bộ vi xử lí mới Core 2 của họ chạy nhanh hơn 20% khi cùng với mức tiêu thụ điện năng so với bộ vi xử lí Core Duo.
*Một số thông số của Merom:
- Công nghệ sản xuất: 65 nm- Kích thước nhân: 143 mm2- Transistors: 291 triệu- Tốc độ xung nhịp: 1.06 GHz – 2.4 GHz - FSB: 533 MHz – 800 MHz- Bộ nhớ Cache L1: 32 KB + 32 KB- Bộ nhớ Cache L2: 2 MB – 4 MB Shared- Số tầng Pipeline: 14- Số bộ Decoder: 1 Complex + 3 Simple- Tốc độ giải mã nhanh nhất: 4 + 1
Các thông số chính Intel® Core™2 Duo Processor
- Kiểu chân: Soket LGA775
- Sản xuất dựa trên xử lí 65 nm.
- Tốc độ xử lý từ 1,8GHz đến >= 3,16GHz
- Tốc độ FSB: 800MHz, 1066MHz và 1333MHz
- Bộ nhớ Cache L1 cho lệnh 32 KB và dữ liệu 32KB cho mỗi lõi.
- Cache L2 từ 2MB đến 6MB dùng chung cho cả 2 nhân
- Tương thích với Memory là DDR2
- Chipset hỗ trợ là Intel 945GC, 945GT, 946PL, 946GZ, Q963, Q965, P965,G965
- Tập lệnh MMX, SSE, SSE2, SSE3.
- Hỗ trợ công nghệ Intel Virtualization (trừ Core 2 Duo E4300)
- Hỗ trợ côngnghệ Intel EM64T .
- Hỗ trợ Execute Disable Bit.
- Khả năng quản lí nguồn thông minh - Intelligent Power Capability.
- Hỗ trợ công nghệ Enhanced SpeedStep
II. Nội dung chính
A.Sơ đồ kiến trúc core
Để hiểu về các vi cấu trúc core chúng ta trở về lịch sử các dòng core của intel ,dòng core 2 nhân đầu tiên của Intel là Dual core(ở đây chúng tôi chỉ đê cập đến dòng 2 nhân trở lên). Nó có 2 CPU thật, hoàn chỉnh bên trong 1 con chip. Core Duo được sản xuất bằng công nghệ 65nm (tên mã là Yonah). Core Duo dùng kiến trúc lõi siêu nhỏ gần giống với Pentium nhưng được bổ sung thêm nhiều tính năng mới. Bộ nhớ đệm cấp 2 (Cache L2) của Core Duo được chia đều cho mỗi nhân. Nghĩa là nếu Cache L2 là 2 MB thì nhân 1 và nhân 2 được sử dụng tối đa là 1 MB dù dư dù thiếu ,chính vì điều này giải thích vì sao dòng dual core hao tốn điện năng và tốc độ .
Cấu trúc Dual Core
Khắc phục nhược điểm của dòng dual core intel cho ra đòi dòng Core 2 duo .Core 2 duo ngoài những tính năng mới thì cải tiến tiêu biểu nhất là việc Share dung lượng Cache L2 của 2 nhân. Nghĩa là nếu Cache L2 là 2 MB thì nhân 1 không phải dùng cố định 1 MB nữa mà nếu có thiếu thì lấy phần dung lượng dư của nhân 2 dùng tiếp (điều này đối với Core Duo là không thể) nên việc xử lý sẽ nhanh hơn (vì khi Core Duo xài hết 1 MB L2 Cache mà vẫn còn thiếu thì sẽ truy xuất vào RAM để lấy dữ liệu, mà RAM thì có tốc độ truy xuất chậm hơn Cache L2). Các bộ vi xử lý Core 2 Duo từ E7200 trở về sau đã được sản xuất theo công nghệ 45nm .
Cấu trúc Core 2 duo
Như vậy vi cấu trúc core đươc hiểu theo cách nôm na là sư cải tiến về mặt số lượng nhân và cache.
Kiến trúc Core có 5 cổng gửi đi nhưng ba trong số chúng được sử dụng cho việc gửi các chỉ lệnh nối micro-ops đến các khối thựcthi. Điều đó có nghĩa rằng các CPU đang sử dụng kiến trúc Core đó có thể gửi ba địa chỉ lệnh micro-ops đến khối thực thi trên một chu kỳ clock.
Kiến trúc Core cung cấp một FPU mở rộng và một IEU mở rộng (ALU) khi chúngta mang ra so với kiến trúc Pentium M. Điều này có nghĩa rằng kiến trúcCore có thể xử lý đến ba chỉ lệnh số nguyên trên một chu kỳ clock,trong khi Pentium M chỉ có hai.
Sơ đồ khối chính của các khối thực thi trong kiến trúc Core.
IEU: Instruction ExecutionUnit là nơi các chỉ lệnh được thực thi. Khối này cũng được biết đến là khối ALU (Arithmetic and Logic Unit). Các chỉ lệnh thông thường cũng được biết là các chỉ lệnh số nguyên.
JEU: Jump Execution Unit xử lý rẽ nhánh và cũng được biết đến với tên Branch Unit.
FPU:Floating-Point Unit. Khối này chịu trách nhiệm cho việc thực thi các biểu thức toán học floating-point và cũng cả các chỉ lệnh MMX và SSE.Trong CPU này, các FPU không “hoàn thiện” vì một số kiểu chỉ lệnh(FPmov, FPadd và FPmul) chỉ được thực thi trên các FPU nào đó:
FPadd: Chỉ có FPU này mới có thể xử lý các chỉ lệnh cộng floating-point như ADDPS.
FPmul: Chỉ có FPU này mới có thể xử lý các chỉ lệnh nhân floating-point như MULPS
FPmov:Các chỉ lệnh cho việc nạp hoặc copy một thanh ghi FPU, như MOVAPS (đượcdùng để truyền tải dữ liệu đến thanh ghi SSE 128-bit XMM). Kiểu chỉlệnh này có thể được thực thi trên các FPU, nhưng chỉ trên các FPU thứhai và thứ ba nếu các chỉ lệnh Fpadd hay Fpmul không có trongReservation Station.
Load: khối này dùng để xử lý các chỉ lệnh yêu cầu dữ liệu được đọc từ bộ nhớ RAM.
Store Data: Khối này xử lý các chỉ lệnh yêu cầu dữ liệu được ghi vào bộ nhớ RAM.
B.Cấu tạo phần cứng CPU( Core 2 Dual)
Nhìn một cách tổng thể hệ thống trên chúng ta có thế thấy rằng vi sử lý core 2 duo bao gồm ba thành phần chính đó là:
+ CPU là bộ sử lý trung tâm của hệ thống và nằm ở vị trí trên cùng.Các thành phần chính của CPU gồm khối tính toán ALU , bộ sử lý trung tâm CU và các BUS hệ thống có băng thông lớn . Chức năng chính của CPU là tiến hành các thao tác tính toán xử lý, đưa ra các tín hiệu địa chỉ, dữ liệu và điều khiển nhằm thực hiện một nhiệm vụ nào đó do người lập trình đưa ra thông qua các lệnh.
+ Chip Cầu Bắc(North Bridge) là IC quan trọng nhất trên Mainboard, nó quyết định độ mạnh và giá thành của Main. Chip Cầu Bắc điều khiển trực tiếp các thành phần như :
o Điều khiển CPUo Điều khiển bộ nhớ RAMo Điều khiển Video Card
o Và trao đổi dữ liệu với Chip Cầu Nam.
Các thành phần do Chip Cầu Bắc thực hiện (CPU, RAM, Video Card) phải đồng bộ với nhau và thuộc phạm vi của Chip Cầu Bắc hỗ trợ thì chúng mới doạt động được.
Trong thực tế, mỗi loại Chip Cầu Bắc chỉ hỗ trợ khoảng 2 loại CPU, 2 loại RAM và 2 loại Video Card, nếu bạn sử dụng CPU hay RAM hay Video Card mà Chip Cầu Bắc không hỗ trợ thì nó sẽ không hoạt động được.
+ Chíp Cầu Nam(South Bridge) còn gọi là I/O Controller Hud (ICH), là một chip đảm nhiệm những việc có tốc độ chậm của Mainboard trong Chipset. Khác với Chip Cầu Bắc, Chip Cầu Nam không được kết nối trực tiếp với CPU, chính xác hơn Chíp Cầu Nam kết nối với CPU thông qua Chíp Cầu Bắc. Vì Chíp Cầu Nam được đặt xa CPU hơn, nó được giao trách nhiệm liên lạc với các thiết bị có tốc độ chậm hơn. Một Chip Cầu Nam điển hình thường có thể làm việc được với vài loại Chip Cầu Bắc khác nhau. Trước đây cổng giao tiếp chung giữa Chip Cầu Bắc và Chip Cầu Nam đơn giản là BUS PCI, hiện nay phần lớn các Chipset hiện thời sử dụng giao các giao tiếp chung được thiết kế độc quyền có hiệu năng cao hơn.
Tên gọi “Chip Cầu Nam” bắt nguồn từ việc vẽ một kiến trúc trên sơ đồ.Nhiệm vụ chính của Chip cầu Nam là kết nối :
o Với Chip cầu bắc
o Cổng USB 2.0
o Ổ đĩa cứng
o Và các cổng giao tiếp
C.Tập lệnh của core 2 duo
1 .TỔ CHỨC LỆNH CỦA VI XỬ LÝ Core 2 Duo
a. Dạng lệnh :
- Một lệnh của vi xử lý Core 2 Duo có dạng tổng quát như sau :
,
- Mã gợi nhớ giúp cho người sử dụng biết hoạt động của lệnh. Mã gợi nhớ thường là
các chữ tiếng anh viết tắt như : MOV là lệnh chuyển, ADD là lệnh cộng, AND là lệnh
và luận lý, JMP là lệnh nhảy . . .
- Toán hạng đích giữ kết quả (nếu có yêu cầu) sau khi thi hành lệnh. Toán hạng đích
có thể là thanh ghi hay bộ nhớ.
- Toán hạng nguồn có thể là thanh ghi, bộ nhớ hay một số tức thời.
- Toán hạng thanh ghi là các thanh ghi của vi xử lý 86 gồm các thanh ghi tổng quát (8
bit lẫn 16 bit) và các thanh ghi đoạn đã biết.
- Toán hạng số tức thời có thể là số trong các hệ đếm khác nhau và được viết theo qui
định như sau :
. Số hệ 2 : ××××××××B (× là 1 bit nhị phân).
Ví dụ : 01101101B, 11111111B
. Số hệ 10 : ××××× , hay ×××××D (× là một số thuộc hệ 10).
Ví dụ : 65535, 1000
. Số hệ 16 : ××××H và bắt đầu bằng số ( là một số thuộc hệ 16).
Ví dụ : 1A59H, 0E05BH
- Toán hạng bộ nhớ dùng trong tập lệnh vi xử lý 86 sử dụng phương pháp định địa chỉ tổng hợp được gọi là địa chỉ hiệu dụng.
b Địa chỉ hiệu dụng :
- Địa chỉ hiệu dụng là tổ hợp của 3 nhóm sau được đặt trong dấu ngoặc vuông [ ]:
. Nhóm thanh ghi chỉ số : SI, DI
. Nhóm thanh ghi nền : BX, BP
. Địa chỉ trực tiếp : số 16 bit
- Các thanh ghi trong cùng một nhóm không được xuất hiện trong cùng một địa chỉ hiệu dụng.
- Địa chỉ hiệu dụng chính là thành phần offset của địa chỉ luận lý bộ nhớ.
- Segment của địa chỉ hiệu dụng được mặc định như sau :
. Nếu không sử dụng BP trong địa chỉ hiệu dụng thì mặc định theo thanh ghi DS.
. Nếu có BP trong địa chỉ hiệu dụng thì mặc định theo thanh ghi SS.
- Các hoạt động thực hiện trên bộ nhớ thông qua địa chỉ hiệu dụng chia ra làm 2 trường hợp : hoạt động 8 bit và hoạt động 16 bit.
- Hoạt động bộ nhớ 8 bit làm việc trên 1 byte bộ nhớ ngay vị trí chỉ ra bởi địa chỉ hiệu dụng.
- Hoạt động bộ nhớ 16 bit sẽ làm việc trên 2 byte bộ nhớ có địa chỉ kế tiếp nhau và nội dung của chúng được ghép lại thành dữ liệu 16 bit theo qui tắc "byte cao địa chỉ cao, byte thấp địa chỉ thấp"
- Để thuận tiện trong vấn đề giải thích lệnh, ta qui ước thêm cách diễn tả sau :
. Dữ liệu 8 bit của bộ nhớ : [địa chỉ ]
. Dữ liệu 16 bit của bộ nhớ : [địa chỉ +1,địa chỉ]
- Để xác định rõ hoạt động của bộ nhớ, ta phải dùng thêm toán tử PTR như sau :
. Hoạt động 8 bit : BYTE PTR [1000h] là tham khảo 1 byte bộ nhớ có địa
chỉ 1000h
. Hoạt động 16 bit : WORD PTR [1000h] là tham khảo đến 2 byte bộ nhớ
liên tiếp 1000h và 1001h
2. CÁC NHÓM LỆNH CỦA VI XỬ LÝ Core 2 Duo
Ký hiệu qui ước :
- Các chữ viết tắt dùng trong các nhóm lệnh :
reg : thanh ghi tổng quát.
reg16 : thanh ghi 16 bit.
segreg : thanh ghi đoạn.
accum : thanh ghi bộ tích lũy AX hoặc AL.
mem : bộ nhớ (địa chỉ hiệu dụng).
mem16 : bộ nhớ 2 byte liên tiếp (địa chỉ hiệu dụng).
mem32 : bộ nhớ 4 byte liên tiếp (địa chỉ hiệu dụng).
immed : số tức thời.
immed8 : số tức thời 8 bit.
shortlabel : nhãn ngắn (-128 byte +127 byte).
nearlabel : nhãn trong đoạn (2 byte offset).
farlabel : nhãn ngoài đoạn (4 byte : 2 byte segment và 2 byte offset).
a. Nhóm lệnh chuyển dữ liệu :
Lệnh MOV :
- Dạng lệnh : MOV reg,reg MOV reg,immed
MOV mem,reg MOV mem,immed
MOV reg,mem MOV mem16,segreg
MOV reg16,segreg MOV segreg,mem16
MOV segreg,reg16
MOV DL,BH ; DL ← BH
MOV [SI+1000h],BP ; [SI+1001h, SI+1000h] ← BP
MOV DX,[1000h] ; DX ← [1001h,1000h]
MOV DX,DS ; DX ← DS
MOV ES,BX ; ES ← BX
MOV DI,12h ; DI ← 12h
MOV AL,12h ; AL ← 12h
a Lệnh PUSH :
- Dạng lệnh : PUSH reg16 PUSH segreg
PUSH mem16
- Giải thích : SP ← SP-2
[SS:SP+1,SS:SP] ← thn
Lệnh POP :
- Dạng lệnh : POP reg16 POP segreg
POP mem16
- Giải thích : thđ ← [SS:SP+1,SS:SP] SP ← SP+2
- Tác động cờ : OF DF IF SF ZF AF PF CF
- Lấy dữ liệu từ đỉnh chồng vào toán hạng đích.
Lệnh IN :
- Dạng lệnh : IN accum,immed8 IN accum,DX
- Giải thích : btl ← [cổng IO]
- Tác động cờ : OF DF IF SF ZF AF PF CF
- Nhập dữ liệu từ cổng xuất nhập vào thanh ghi bộ tích lũy AL hay AX. Trường
hợp AX sẽ nhập byte thấp trước, byte cao sau.
Lệnh OUT :
- Dạng lệnh : OUT immed8,accum
OUT DX,accum
- Giải thích : [cổng IO] ← btl
- Tác động cờ : OF DF IF SF ZF AF PF CF
- Xuất dữ liệu từ thanh ghi bộ tích lũy AL hoặc AX ra cổng xuất nhập có địa chỉ 8
bit là số tức thời immed8 hay có địa chỉ 16 bit trong thanh ghi DX.
Lệnh XLAT :
- Dạng lệnh : XLAT
- Giải thích : AL ← [DS:BX+AL]
- Tác động cờ : OF DF IF SF ZF AF PF CF
- Lệnh XLAT có ứng dụng trong mã hóa dữ liệu.
Lệnh LEA :
- Dạng lệnh : LEA reg16,mem
- Giải thích : thđ ← địa chỉ
- Tác động cờ : OF DF IF SF ZF AF PF CF
- Nạp địa chỉ hiệu dụng vào thanh ghi 16 bit.
Lệnh LDS :
- Dạng lệnh : LDS reg16,mem32
- Giải thích : DS ← [địa chỉ+3,địa chỉ+2]
thđ ← [địa chỉ+1,địa chỉ]
- Tác động cờ : OF DF IF SF ZF AF PF CF
- Nạp 4 byte bộ nhớ (con trỏ) vào thanh ghi DS và một thanh ghi tổng quát.
Lệnh LES :
- Dạng lệnh : LES reg16,mem32
- Giải thích : ES ← [địa chỉ+3,địa chỉ+2]thđ ← [địa chỉ+1,địa chỉ]
- Tác động cờ : OF DF IF SF ZF AF PF CF
- Nạp 4 byte bộ nhớ (con trỏ) vào thanh ghi ES và một thanh ghi tổng quát.
Lệnh PUSHF :
- Dạng lệnh : PUSHF
- Giải thích : SP ← SP - 2 [SS:SP+1,SS:SP] ← Flags
- Tác động cờ : OF DF IF SF ZF AF PF CF
- Đẩy thanh ghi cờ vào chồng.
Lệnh POPF :
- Dạng lệnh : POPF
- Giải thích : Flags ← [SS:SP+1,SS:SP] SP ← SP + 2
- Tác động cờ : OF DF IF SF ZF AF PF CF
- Lấy thanh ghi cờ từ chồng ra.
b. Nhóm lệnh số học :
Lệnh ADD :
- Dạng lệnh : ADD reg,reg ADD reg,immed
ADD mem,reg ADD mem,immed
ADD reg,mem ADD accum,immed
- Giải thích : thđ ← thđ + thn
- Cộng toán hạng nguồn vào toán hạng đích. Kết quả cất vào toán hạng đích.
Lệnh ADC :
- Dạng lệnh : ADC reg,reg ADC reg,immed
ADC mem,reg ADC mem,immed
ADC reg,mem ADC accum,immed
- Giải thích : thđ ← thđ + thn + CF
- Cộng toán hạng đích với toán hạng nguồn với cờ nhớ. Kết quả cất vào toán hạng
đích. ADC dùng cho phép cộng 2 số có chiều dài nhiều byte.
Lệnh INC :
- Dạng lệnh : INC reg INC mem
- Giải thích : thđ ← thđ + 1
- Tăng tức là cộng 1 vào toán hạng đích nhưng không ảnh hưởng cờ nhớ.
Lệnh AAA :
- Dạng lệnh : AAA
- Giải thích : Nếu (b3b2b1b0 của AL) > 9 hoặc AF=1 thì
AL ← (AL+6) and 0Fh, AH ← AH+1, CF ← 1, AF ← 1
- Chỉnh ASCII sau phép cộng. Chỉnh kết quả trong AL thành 2 số BCD không nén trong AH và AL.
Lệnh DAA :
- Dạng lệnh : DAA
- Giải thích : Nếu (b3b2b1b0 của AL) > 9 hoặc AF=1 thì
AL ← (AL+6), AF ← 1
Nếu AL > 9Fh hoặc CF=1 thì
AL ← AL+60h, CF ← 1
- Chỉnh thập phân sau phép cộng. Chỉnh kết quả trong AL thành số BCD nén trong AL.
Lệnh SUB :
- Dạng lệnh : SUB reg,reg SUB reg,immed
SUB mem,reg SUB mem,immed
SUB reg,mem SUB accum,immed
- Giải thích : thđ ← thđ - thn
- Trừ toán hạng đích cho toán hạng nguồn. Kết quả cất vào toán hạng đích.
Lệnh SBB :
- Dạng lệnh : SBB reg,reg SBB reg,immed
SBB mem,reg SBB mem,immed
SBB reg,mem SBB accum,immed
- Giải thích : thđ ← thđ - thn - CF
. Lệnh DEC :
- Dạng lệnh : DEC reg DEC mem
- Giải thích : thđ ← thđ - 1
- Giảm tức là trừ 1 vào toán hạng đích nhưng không ảnh hưởng cờ nhớ.
Lệnh NEG :
- Dạng lệnh : NEG reg NEG mem
- Giải thích : thđ ← bù 2(thđ)
- Lấy bù 2 toán hạng đích.
Lệnh CMP :
- Dạng lệnh : CMP reg,reg CMP reg,immed
CMP mem,reg CMP mem,immed
CMP reg,mem CMP accum,immed
- Giải thích : thđ - thn
- So sánh. Thực hiện trừ toán hạng đích cho toán hạng nguồn, không lưu lại kết quả
mà chỉ giữ lại tác động của phép trừ lên các cờ.
Lệnh AAS :
- Dạng lệnh : AAS
- Giải thích : Nếu (D3D2D1D0 của AL) > 9 hoặc AF=1 thì
AL ← (AL - 6) and 0Fh, AH ← AH - 1, CF ← 1, AF ← 1
- Chỉnh ASCII sau phép cộng. Chỉnh kết quả trong AL thành 2 số BCD không nén trong AH và AL.
Lệnh DAS :
- Dạng lệnh : DAS
- Giải thích : Nếu (D3D2D1D0 của AL) > 9 hoặc AF=1 thì
AL ← (AL - 6), AF ← 1
Nếu AL > 9Fh hoặc CF=1 thì
AL ← AL - 60h, CF ← 1
- Chỉnh thập phân sau phép trừ. Chỉnh kết quả trong AL thành số BCD nén trong AL.
Lệnh MUL :
- Dạng lệnh : MUL reg MUL mem
- Giải thích : Toán hạng nguồn 8 bit thì : AX ← AL * thn8
Toán hạng nguồn 16 bit thì : DX AX ← AX * thn16
- Nhân hai số không dấu 8 bit hay 16 bit. Số bit thực hiện được xác định bằng chiều dài của toán hạng nguồn.
Lệnh DIV :
- Dạng lệnh : DIV reg DIV mem
- Giải thích : Toán hạng nguồn 8 bit thì : AL ← (AX / thn8)
AH ← số dư của (AX / thn8)
Toán hạng nguồn 16 bit thì : AX ← (DXAX / thn16)
DX ← số dư của (DXAX / thn16)
- Chia hai số không dấu.
Lệnh IDIV :
- Dạng lệnh : IDIV reg IDIV mem
- Chia hai số có dấu. Thực hiện giống như lệnh DIV nhưng kết quả coi là số có dấu.
Lệnh AAD :
- Dạng lệnh : AAD
- Giải thích : AL ← ((AH * 0Ah) + AL)
AH ← 0
- Chỉnh ASCII trước phép chia IDIV. Có thể dùng lệnh n