Bộ vi xử lý có tên gọi viết tắt là MP (Microprocessor), CPU (Central Processing
Unit – khối xử lý trung tâm)
Bớ nhớ trung tâm gồm 2 phần:
ROM (Read Only Memory) – bộ nhớ cố định: dung để chứa chương trình
điều hành hoạt động của hệ vi xử lý, còn được gọi là chương trình
MONITOR (người hướng dẫn). Trong quá trình hoạt động sau này, nội dung
không thể thay đổi.
RAM (Random Access Memory) – bộ nhớ đọc/ghi dung làm môi trường xử
lý thông tin, lưu trữ kết quả trung gian và kết quả cuối cùng của phép tính
toán, xử lý thông tin. Nội dung có thể thay đổi trong quá trình hoạt động của
hệ vi xử lý.
Kênh thông tin hệ thống gồm 3 phần:
Kênh địa chỉ (Address Bus): kênh một chiều đi từ bộ vi xử lý ra. Bộ vi xử lý sử
dụng kênh này để quản lý các thành phần có trong hệ bằng cách gán cho mỗi thành
phần một địa chỉ xác định.
Kênh dữ liệu (Data Bus): kênh hai chiều dung để trao đổi thông tin giữa bộ vi xử lý
và các thành phần có trong hệ.
Kênh điều khiển (Control Bus): tập hợp các dây tín hiệu điều khiển để tạo liên lạc
giữa bộ vi xử lý và các thành phần có trong hệ nhằm đồng bộ hóa mọi chế độ và
mọi thao tác của hệ thống.
Bộ nhớ trung tâm là một bộ phận không thể thiếu đối với bất kỳ một hệ vi xử lý
nào. Bộ nhớ trung tâm là tập hợp các thanh ghi thông tin với số lượng lớn. Mội
thanh ghi thường có m bit (thường là 8 bit). Chức năng cơ bản của bộ nhớ là lưu
trữ và trao đổi thông tin.
Bộ nhớ PROM (Programmable ROM) là bộ nhớ cố định có cấu trúc đơn giản. Nội
dung được nạp vào một lần và không thể thay đổi được nữa.
Bộ nhớ EPROM (Erasable PROM – ROM xóa/nạp được nhiều lần) là bộ nhớ cố
định có cấu trúc đặc biệt. Nội dung được nạp và có thể nạp/xóa nhiều lần.
Công nghệ vi điện tử đã tạo ra hàng loạt các bộ nhớ cố định ROM và EPROM
dung lượng lớn dưới dạng mạch IC. Chip nhớ EPROM thông dụng hiện nay là các
IC có dung lượng từ 8kb trở lên.
Phương thức lưu trữ thông tin RAM được chia làm hai loại chính: RAM tĩnh và
RAM động. RAM tĩnh có thể lưu trữ thông tin lâu tùy ý miễn là được cung cấp
điện năng. RAM động chỉ lưu trữ thông tin trong một thời gian nhất định. Sử dụng
RAM động có phức tạp nhưng về cấu trúc nhớ lại đơn giản, tiêu tốn ít năng lượng,
tăng mật độ bộ nhớ và đôi khi còn tang cả tốc độ làm việc của bộ nhớ.
Các thanh ghi của bộ xử lý 80286: 15 thanh ghi 16 bit được chia thành 3 nhóm
Nhóm thứ nhất: các thanh ghi đa năng dung trong các phép tính số học – logic.
Bốn thanh ghi 16 bit là AX, BX, CX và DX cũng có thể sử dụng như 8 thanh
ghi 8 bit. Cụ thể:
AX, DX dung trong các lệnh nhân, chia và vào/ra dữ liệu
CX dung trong các lệnh quay vòng, lệnh dịch chuyển và các lệnh lặp.
BX và BP là các thanh ghi cơ sở dung để chứa địa chỉ cơ sở của một cấu trúc
dữ liệu
SI, DI là các thanh ghi chỉ số chứa các chỉ số có thể tang dần khi thâm nhập
vào một cấu trúc dữ liệu.
SP là con trỏ ngăn xếp.
Nhóm thứ hai: nhóm các thanh ghi quản lý mảng (đoạn). Các chương trình được
cấu trúc từ các module lệnh và dữ liệu.
CS là thanh ghi mảng lệnh (command Segment)
DS là thanh ghi mảng dữ liệu (data segment)
SS là thanh ghi mảng ngăn xếp (stack segment)
ES là thanh ghi mảng dữ liệu mở rộng (extra segment)
Nhóm thứ ba: nhóm lệnh điều khiển và trạng thái.
F là thanh ghi cờ có 16 bit
CF là cờ nhớ khi được lập sẽ chỉ ra phép nhớ từ bit cao nhất của toán tử 8 bit hay
16 bit.
PF là cờ kiểm tra chẵn lẻ
AF là cờ nhớ phụ, phục vụ cho phép tính với mã BCD, phụ thuộc vào thanh ghi AL
ZF là cờ rỗng
SF là cờ dấu. Nếu phép tính có kết quả dương thì SF = 0 còn kết quả âm thì SF = 1.
OF là cờ tràn dung trong các phép tính với các toán hạng có dấu.
Cấu trúc assembly gồm 4 phần:
[nhãn:] tên lệnh [toán hạng] [;ghi chú]
Mỗi dòng dài tối đa 128 kí tự
Nhãn (label): dùng để thay thế địa chỉ câu lệnh, cho phép câu lệnh khác có thể
tham chiếu đến câu lệnh có nhãn thông qua nhãn của nó.
Tên lệnh: xác định hành động của câu lệnh, gồm từ 2->7 kí tự
Toán hạng: xác định dữ liệu mà câu lệnh cần xử lý. Các toán hạng là các hằng,
thanh ghi, tên tượng trưng, biểu thức tùy vào kiểu địa chỉ được dùng. Toán hạng
được cấu thành từ các đại lượng sau:
Hằng: giá trị không đổi trong chương trình
Thanh ghi: Tất cả tên các thanh ghi của CPU đều có thể dùng trong phần
toán hạng của một lệnh hợp ngữ. Tên của thanh ghi CPU chính là địa chỉ
truy cập của nó.
Tên tượng trưng: biểu thị một hằng, một biến, địa chỉ nhãn, đoạn, chương
trình con, macro, record và structure.
Biểu thức: cho ta một công thức tính toán một giá trị theo một quy tắc toán
học.
Comment: ghi chú hay giải thích ý nghĩa câu lệnh
Các dạng hằng trong Assembly
Nhị phân: một dãy các chữ số 1 và 0 kết thúc bằng B
Thập phân: một dãy các chữ số từ 0 đến 9
Hexa: một dãy các chữ số từ 0 đến 9 và các ký tự từ A đến F, theo sau bởi kí tự H.
Ký tự đầu tiên phải là một chữ số.
Các chỉ dẫn trong assembly (Directive)
[Tên] Tên Directive [Toán hạng] [;Chú thích]
Mỗi phần được tách nhau bởi một hoặc nhiều ký tự ngăn cách
Toán hạng có thể là tên tượng trưng, hằng, biến, biểu thức, các tên dành riêng tùy
thuộc vào loại directive, phải là một giá trị xác định khi dịch.
Directive thường dùng để định nghĩa tên tượng trưng, khai báo dữ liệu và biến,
khai báo mảng và chương trình con , đánh dấu cuối mảng, cuối chương trình con
hay kết thúc chương trình.
Nhóm định nghĩa tên tượng trưng: EQU và =
Nhóm khai báo dữ liệu: khai báo vùng nhớ cho các dữ liệu cần sử dụng trong
chương trình. DB, DW hay DD
[name] DB data
Name là một tên dùng để truy xuất vùng dữ liệu. data: quy định giá trị ban đầu của
vùng dữ liệu.
Toán tử DUP: dùng để lặp lại các dữ liệu với số lần quy định bởi count
count DUP (data[,…])
Toán tử ?: muốn khai báo một biến hay một mảng mà không cần giá trị khởi đầu
của nó ta dùng toán tử ?
Khai báo biến con trỏ (pointer). Biến con trỏ là biến dùng để chứa địa chỉ ô nhớ.
Biến con trỏ có thể là near hay far. Biến con trỏ dạng near chỉ chứa phần địa chỉ
offset, khai báo như một biến dạng word bằng directive DW. Biến con trỏ dạng far
chứa cả địa chỉ mảng và địa chỉ offset, khai báo như một biến dạng doubleword
bằng directive DD.
Nhóm lệnh chuyển dữ liệu:
Lệnh MOV (move): (hoặc sao chép) dữ liệu từ một vị trí này sang một di chuyển
vị trí khác. Lệnh này không thay đổi giá trị của dữ liệu nguồn, chỉ sao chép dữ liệu
vào địa chỉ đích.
MOV đích, nguồn
Trong đó:
Đích là nơi nhận giá trị (có thể là một thanh ghi, một ô nhớ hoặc một hằng
số).
Nguồn là giá trị hoặc địa chỉ chứa giá trị cần di chuyển (có thể là một thanh
ghi, ô nhớ hoặc hằng số).
Lệnh XCHG: lệnh (exchange) giá trị giữa hai toán hạng. Nó đổi giá trị hoán đổi
giữa hai thanh ghi hoặc giữa thanh ghi và ô nhớ. Lệnh giúp dễ dàng hoán XCHG
đổi giá trị giữa hai đối tượng mà không cần sử dụng các lệnh tạm thời khác.
XCHG đích, nguồn
Trong đó:
Đích là toán hạng nhận giá trị (thanh ghi hoặc ô nhớ).
Nguồn là toán hạng cung cấp giá trị để hoán đổi (thanh ghi hoặc ô nhớ).
Lệnh PUSH: sử dụng để (stack). Khi lệnh được đẩy giá trị vào ngăn xếp PUSH
thực thi, giá trị của toán hạng sẽ được lưu trữ vào ngăn xếp và con trỏ ngăn xếp
(stack pointer, ) sẽ giảm đi (đối với ngăn xếp kiểu giảm dần, tức là giá trị của SPSP
giảm đi sau mỗi lần đẩy giá trị). Lệnh thường được sử dụng để lưu trữ tạm PUSH
thời các giá trị (như thanh ghi, địa chỉ, hoặc tham số) trong các chương trình con
hoặc khi xử lý các thao tác ngắt (interrupts).
PUSH toán_hạng
Lệnh POP: sử dụng để (stack) và lưu giá trị đó vào một lấy giá trị từ ngăn xếp
thanh ghi hoặc ô nhớ. Khi lệnh được thực thi, giá trị ở đầu ngăn xếp sẽ được POP
sao chép vào toán hạng đích và con trỏ ngăn xếp ( ) sẽ tăng lên (đối với ngăn xếpSP
kiểu giảm dần). Lệnh thường được sử dụng trong các chương trình con để POP
phục hồi giá trị của các thanh ghi đã bị thay đổi trong khi thực thi, hoặc để lấy dữ
liệu sau khi một hàm đã hoàn thành.
POP đích là thanh ghi hoặc ô nhớ nơi sẽ nhận giá trị được lấy từ ngăn xếpĐích
Nhóm lệnh chuyển dữ liệu qua cổng
Lệnh IN: sử dụng để (input port) vào một thanh ghi. nhận dữ liệu từ cổng vào
Lệnh này thường được dùng trong các chương trình tương tác với phần cứng, đặc
biệt là trong các hệ thống sử dụng cổng vào/ra (I/O ports).
IN đích, cổng
Trong đó:
Đích AL AX là thanh ghi nhận giá trị đầu vào (có thể là một thanh ghi như , ,
v.v.).
Cổng là số cổng (port number) từ đó giá trị sẽ được lấy.
Lệnh OUT: (output port). Lệnh này gửi dữ liệu từ một thanh ghi ra cổng xuất
thường được sử dụng trong các chương trình tương tác với phần cứng, đặc biệt là
khi cần xuất dữ liệu ra các thiết bị ngoại vi thông qua cổng I/O (input/output).
OUT cổng, nguồn
Trong đó:
Cổng là số cổng (port number) mà dữ liệu sẽ được gửi đến.
Nguồn là thanh ghi chứa giá trị cần xuất ra cổng (thường là các thanh ghi
như , , v.v.).AL AX
Lệnh so sánh có cú pháp:
CMP left, right
Left có thể là thanh ghi hay bộ nhớ, còn right có thể là thanh ghi hay bộ nhớ, hoặc
hằng số. Có chức năng so sánh toán hạng . Kết quả phản ánh trong các left right
cờ trạng thái nhưng không làm thay đổi nội dung toán hạng .left
Nhóm lệnh tính toán số học
Lệnh cộng không nhớ ADD: sử dụng để lại với nhau và lưu cộng hai toán hạng
kết quả vào toán hạng đích. Lệnh này thực hiện phép cộng giữa hai toán hạng (có
thể là thanh ghi, ô nhớ hoặc hằng số) và cập nhật các cờ trạng thái (flags) như cờ
carry (CF), zero (ZF), sign (SF), overflow (OF), v.v.
ADD đích, nguồn

Preview text:

Bộ vi xử lý có tên gọi viết tắt là MP (Microprocessor), CPU (Central Processing
Unit – khối xử lý trung tâm)
Bớ nhớ trung tâm gồm 2 phần:
ROM (Read Only Memory) – bộ nhớ cố định: dung để chứa chương trình
điều hành hoạt động của hệ vi xử lý, còn được gọi là chương trình
MONITOR (người hướng dẫn). Trong quá trình hoạt động sau này, nội dung không thể thay đổi.
RAM (Random Access Memory) – bộ nhớ đọc/ghi dung làm môi trường xử
lý thông tin, lưu trữ kết quả trung gian và kết quả cuối cùng của phép tính
toán, xử lý thông tin. Nội dung có thể thay đổi trong quá trình hoạt động của hệ vi xử lý.
Kênh thông tin hệ thống gồm 3 phần:
Kênh địa chỉ (Address Bus): kênh một chiều đi từ bộ vi xử lý ra. Bộ vi xử lý sử
dụng kênh này để quản lý các thành phần có trong hệ bằng cách gán cho mỗi thành
phần một địa chỉ xác định.
Kênh dữ liệu (Data Bus): kênh hai chiều dung để trao đổi thông tin giữa bộ vi xử lý
và các thành phần có trong hệ.
Kênh điều khiển (Control Bus): tập hợp các dây tín hiệu điều khiển để tạo liên lạc
giữa bộ vi xử lý và các thành phần có trong hệ nhằm đồng bộ hóa mọi chế độ và
mọi thao tác của hệ thống.
Bộ nhớ trung tâm là một bộ phận không thể thiếu đối với bất kỳ một hệ vi xử lý
nào. Bộ nhớ trung tâm là tập hợp các thanh ghi thông tin với số lượng lớn. Mội
thanh ghi thường có m bit (thường là 8 bit). Chức năng cơ bản của bộ nhớ là lưu
trữ và trao đổi thông tin.
Bộ nhớ PROM (Programmable ROM) là bộ nhớ cố định có cấu trúc đơn giản. Nội
dung được nạp vào một lần và không thể thay đổi được nữa.
Bộ nhớ EPROM (Erasable PROM – ROM xóa/nạp được nhiều lần) là bộ nhớ cố
định có cấu trúc đặc biệt. Nội dung được nạp và có thể nạp/xóa nhiều lần.
Công nghệ vi điện tử đã tạo ra hàng loạt các bộ nhớ cố định ROM và EPROM
dung lượng lớn dưới dạng mạch IC. Chip nhớ EPROM thông dụng hiện nay là các
IC có dung lượng từ 8kb trở lên.
Phương thức lưu trữ thông tin RAM được chia làm hai loại chính: RAM tĩnh và
RAM động. RAM tĩnh có thể lưu trữ thông tin lâu tùy ý miễn là được cung cấp
điện năng. RAM động chỉ lưu trữ thông tin trong một thời gian nhất định. Sử dụng
RAM động có phức tạp nhưng về cấu trúc nhớ lại đơn giản, tiêu tốn ít năng lượng,
tăng mật độ bộ nhớ và đôi khi còn tang cả tốc độ làm việc của bộ nhớ.
Các thanh ghi của bộ xử lý 80286: 15 thanh ghi 16 bit được chia thành 3 nhóm
Nhóm thứ nhất: các thanh ghi đa năng dung trong các phép tính số học – logic.
Bốn thanh ghi 16 bit là AX, BX, CX và DX cũng có thể sử dụng như 8 thanh ghi 8 bit. Cụ thể:
AX, DX dung trong các lệnh nhân, chia và vào/ra dữ liệu
CX dung trong các lệnh quay vòng, lệnh dịch chuyển và các lệnh lặp.
BX và BP là các thanh ghi cơ sở dung để chứa địa chỉ cơ sở của một cấu trúc dữ liệu
SI, DI là các thanh ghi chỉ số chứa các chỉ số có thể tang dần khi thâm nhập
vào một cấu trúc dữ liệu.
SP là con trỏ ngăn xếp.
Nhóm thứ hai: nhóm các thanh ghi quản lý mảng (đoạn). Các chương trình được
cấu trúc từ các module lệnh và dữ liệu.
CS là thanh ghi mảng lệnh (command Segment)
DS là thanh ghi mảng dữ liệu (data segment)
SS là thanh ghi mảng ngăn xếp (stack segment)
ES là thanh ghi mảng dữ liệu mở rộng (extra segment)
Nhóm thứ ba: nhóm lệnh điều khiển và trạng thái.
F là thanh ghi cờ có 16 bit
CF là cờ nhớ khi được lập sẽ chỉ ra phép nhớ từ bit cao nhất của toán tử 8 bit hay 16 bit.
PF là cờ kiểm tra chẵn lẻ
AF là cờ nhớ phụ, phục vụ cho phép tính với mã BCD, phụ thuộc vào thanh ghi AL ZF là cờ rỗng
SF là cờ dấu. Nếu phép tính có kết quả dương thì SF = 0 còn kết quả âm thì SF = 1.
OF là cờ tràn dung trong các phép tính với các toán hạng có dấu.
Cấu trúc assembly gồm 4 phần:
[nhãn:] tên lệnh [toán hạng] [;ghi chú]
Mỗi dòng dài tối đa 128 kí tự
Nhãn (label): dùng để thay thế địa chỉ câu lệnh, cho phép câu lệnh khác có thể
tham chiếu đến câu lệnh có nhãn thông qua nhãn của nó.
Tên lệnh: xác định hành động của câu lệnh, gồm từ 2->7 kí tự
Toán hạng: xác định dữ liệu mà câu lệnh cần xử lý. Các toán hạng là các hằng,
thanh ghi, tên tượng trưng, biểu thức tùy vào kiểu địa chỉ được dùng. Toán hạng
được cấu thành từ các đại lượng sau:
Hằng: giá trị không đổi trong chương trình
Thanh ghi: Tất cả tên các thanh ghi của CPU đều có thể dùng trong phần
toán hạng của một lệnh hợp ngữ. Tên của thanh ghi CPU chính là địa chỉ truy cập của nó.
Tên tượng trưng: biểu thị một hằng, một biến, địa chỉ nhãn, đoạn, chương
trình con, macro, record và structure.
Biểu thức: cho ta một công thức tính toán một giá trị theo một quy tắc toán học.
Comment: ghi chú hay giải thích ý nghĩa câu lệnh
Các dạng hằng trong Assembly
Nhị phân: một dãy các chữ số 1 và 0 kết thúc bằng B
Thập phân: một dãy các chữ số từ 0 đến 9
Hexa: một dãy các chữ số từ 0 đến 9 và các ký tự từ A đến F, theo sau bởi kí tự H.
Ký tự đầu tiên phải là một chữ số.
Các chỉ dẫn trong assembly (Directive)
[Tên] Tên Directive [Toán hạng] [;Chú thích]
Mỗi phần được tách nhau bởi một hoặc nhiều ký tự ngăn cách
Toán hạng có thể là tên tượng trưng, hằng, biến, biểu thức, các tên dành riêng tùy
thuộc vào loại directive, phải là một giá trị xác định khi dịch.
Directive thường dùng để định nghĩa tên tượng trưng, khai báo dữ liệu và biến,
khai báo mảng và chương trình con , đánh dấu cuối mảng, cuối chương trình con
hay kết thúc chương trình.
Nhóm định nghĩa tên tượng trưng: EQU và =
Nhóm khai báo dữ liệu: khai báo vùng nhớ cho các dữ liệu cần sử dụng trong chương trình. DB, DW hay DD [name] DB data
Name là một tên dùng để truy xuất vùng dữ liệu. data: quy định giá trị ban đầu của vùng dữ liệu.
Toán tử DUP: dùng để lặp lại các dữ liệu với số lần quy định bởi count count DUP (data[,…])
Toán tử ?: muốn khai báo một biến hay một mảng mà không cần giá trị khởi đầu
của nó ta dùng toán tử ?
Khai báo biến con trỏ (pointer). Biến con trỏ là biến dùng để chứa địa chỉ ô nhớ.
Biến con trỏ có thể là near hay far. Biến con trỏ dạng near chỉ chứa phần địa chỉ
offset, khai báo như một biến dạng word bằng directive DW. Biến con trỏ dạng far
chứa cả địa chỉ mảng và địa chỉ offset, khai báo như một biến dạng doubleword bằng directive DD.
Nhóm lệnh chuyển dữ liệu:
Lệnh MOV (move): di chuyển (hoặc sao chép) dữ liệu từ một vị trí này sang một
vị trí khác. Lệnh này không thay đổi giá trị của dữ liệu nguồn, chỉ sao chép dữ liệu vào địa chỉ đích. MOV đích, nguồn Trong đó:
Đích là nơi nhận giá trị (có thể là một thanh ghi, một ô nhớ hoặc một hằng số).
Nguồn là giá trị hoặc địa chỉ chứa giá trị cần di chuyển (có thể là một thanh
ghi, ô nhớ hoặc hằng số).
Lệnh XCHG: lệnh hoán đổi (exchange) giá trị giữa hai toán hạng. Nó đổi giá trị
giữa hai thanh ghi hoặc giữa thanh ghi và ô nhớ. Lệnh XCHG giúp dễ dàng hoán
đổi giá trị giữa hai đối tượng mà không cần sử dụng các lệnh tạm thời khác. XCHG đích, nguồn Trong đó:
Đích là toán hạng nhận giá trị (thanh ghi hoặc ô nhớ).
Nguồn là toán hạng cung cấp giá trị để hoán đổi (thanh ghi hoặc ô nhớ).
Lệnh PUSH: sử dụng để đẩy giá trị vào ngăn xếp (stack). Khi lệnh PUSH được
thực thi, giá trị của toán hạng sẽ được lưu trữ vào ngăn xếp và con trỏ ngăn xếp
(stack pointer, SP) sẽ giảm đi (đối với ngăn xếp kiểu giảm dần, tức là giá trị của SP
giảm đi sau mỗi lần đẩy giá trị). Lệnh PUSH thường được sử dụng để lưu trữ tạm
thời các giá trị (như thanh ghi, địa chỉ, hoặc tham số) trong các chương trình con
hoặc khi xử lý các thao tác ngắt (interrupts). PUSH toán_hạng
Lệnh POP: sử dụng để lấy giá trị từ ngăn xếp (stack) và lưu giá trị đó vào một
thanh ghi hoặc ô nhớ. Khi lệnh POP được thực thi, giá trị ở đầu ngăn xếp sẽ được
sao chép vào toán hạng đích và con trỏ ngăn xếp (SP) sẽ tăng lên (đối với ngăn xếp
kiểu giảm dần). Lệnh POP thường được sử dụng trong các chương trình con để
phục hồi giá trị của các thanh ghi đã bị thay đổi trong khi thực thi, hoặc để lấy dữ
liệu sau khi một hàm đã hoàn thành.
POP đích Đích là thanh ghi hoặc ô nhớ nơi sẽ nhận giá trị được lấy từ ngăn xếp
Nhóm lệnh chuyển dữ liệu qua cổng
Lệnh IN: sử dụng để nhận dữ liệu từ cổng vào (input port) vào một thanh ghi.
Lệnh này thường được dùng trong các chương trình tương tác với phần cứng, đặc
biệt là trong các hệ thống sử dụng cổng vào/ra (I/O ports). IN đích, cổng Trong đó:
Đích là thanh ghi nhận giá trị đầu vào (có thể là một thanh ghi như AL AX , , v.v.).
Cổng là số cổng (port number) từ đó giá trị sẽ được lấy.
Lệnh OUT: gửi dữ liệu từ một thanh ghi ra cổng xuất (output port). Lệnh này
thường được sử dụng trong các chương trình tương tác với phần cứng, đặc biệt là
khi cần xuất dữ liệu ra các thiết bị ngoại vi thông qua cổng I/O (input/output). OUT cổng, nguồn Trong đó:
Cổng là số cổng (port number) mà dữ liệu sẽ được gửi đến.
Nguồn là thanh ghi chứa giá trị cần xuất ra cổng (thường là các thanh ghi
như AL, AX, v.v.). Lệnh so sánh có cú pháp: CMP left, right
Left có thể là thanh ghi hay bộ nhớ, còn right có thể là thanh ghi hay bộ nhớ, hoặc
hằng số. Có chức năng so sánh toán hạng leftright. Kết quả phản ánh trong các
cờ trạng thái nhưng không làm thay đổi nội dung toán hạng left.
Nhóm lệnh tính toán số học
Lệnh cộng không nhớ ADD: sử dụng để cộng hai toán hạng lại với nhau và lưu
kết quả vào toán hạng đích. Lệnh này thực hiện phép cộng giữa hai toán hạng (có
thể là thanh ghi, ô nhớ hoặc hằng số) và cập nhật các cờ trạng thái (flags) như cờ
carry (CF), zero (ZF), sign (SF), overflow (OF), v.v. ADD đích, nguồn