Mã ASCII có 128 kí tự chuẩn và hơn 128 mở rộng, chỉ sự chuyển đổi giữa các máy với nhau, giữa các nước với nhau.
Mã ASCII thay thế cho mã 16 bit với 65536 kí tự mà mỗi kí tự tuơng ứng với các cách sử dụng.
128 kí tự đầu tiên :
| DEC | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |
| HEX | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
| 000 | 00 | Nul | |||||||||||||||
| 016 | 10 | ||||||||||||||||
| 032 | 20 | Spa | ! | " | # | $ | : | & | � | ( | ) | * | + | , | - | . | / |
| 048 | 30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
| 064 | 40 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 080 | 50 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
| 096 | 60 | ` | a | b | c | d | e | f | g | h | y | z | k | l | m | N | o |
| 112 | 70 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | Nul |
Các mã từ 128 đến 255:
Các mã này được sử dụng với DOS, máy in, hoặc màn hình ANSI
| 0 | Nul | Kí tự NULL ( kết thúc một chuỗi ) |
| 7 | Bel | Kí tự Bell hoặc Beep |
| 8 | Bak | Kí tự delete hoặc Backspace |
| 9 | Tab | Kí tự Tab |
| 10 | Lf | Lime Feed (bắt đầu một dòng mới) |
| 13 | Cr | Mã Carriage Return |
| 26 | Eof | Mã Dos End Of File |
| 27 | Esc | Mã Escape |
| 32 | Spa | Kí tự Space |
| 255 | Nul | Thêm 1 ký tự Null |

Chuyển đổi giữa nhị phân và hex :
CPU làm việc với mã nhị phân, có thể tạo ra số nhị phân bằng cách dùng công tắc điều chỉnh nút ON và OFF, nhị phân gồm số 0 và số 1. Bit đơn hoặc Bit nhị phân được chuyển đến CPU. Thông thường dữ liệu gồm 1 byte hay nhiều byte, 1 byte gồm 8 bit.
Ví dụ : 1byte gồm 8 bit chỉ có số 0 và số 1 : 0100 1011
Cách sử dụng hệ thập lục phân trong việc đọc, nói,viết thì không tiện lợi bằng cách sử dụng hệ nhị phân, việc chuyển đổi giữa số nhị phân và số hex thì rất đơn giản, 1 byte sẽ được chia thành hai nhóm, mỗi nhóm gồm 4 bit.
Ví dụ :
Byte 01001011 được chia thành hai hóm bit : 0100 và 1011.
Hệ thống số :
| Nhị phân(Binary) | Thập lục phân (Hexadecimal) | Thập phân (Decimal) |
| 0000 | 0 | 0 |
| 0001 | 1 | 1 |
| 0010 | 2 | 2 |
| 0011 | 3 | 3 |
| 0100 | 4 | 4 |
| 0101 | 5 | 5 |
| 0110 | 6 | 6 |
| 0111 | 7 | 7 |
| 1000 | 8 | 8 |
| 1001 | 9 | 9 |
| 1010 | A | 10 |
| 1011 | B | 11 |
| 1100 | C | 12 |
| 1101 | D | 13 |
| 1110 | E | 14 |
| 1111 | F | 15 |
Ví dụ 1: phân chia 1 byte thành hai :

Kết quả là 4Bhex : 4 B
Ví dụ 2 : chuyển E7 thập phân sang nhị phân
7 ----------------------- 0111
Vậy : E7 -----------------------1110 01112

Bao gồm : lệnh số học, lệnh jump, lệnh move, lệnh compare, lệnh stack, procedures và interrupts, lệnh xuất - nhập, và các lệnh khác.
Các thanh ghi của CPU :
Gồm 4 thanh ghi được được dùng cùng một mục đích là AL, BL, CL và DL.
IP là con trỏ lệnh.
SP là con trỏ ngăn xếp.
SR là thanh ghi trạng thái, thanh ghi này gồm các loại cờ : I, S, O và Z.
Các loại cờ :
Dùng để biểu thị ngõ ra của máy tính thông qua CPU. Các bit đơn trong thanh ghi trạng thái được sử dụng làm các cờ. Trong bộ mô phỏng này sử dụng các loại cờ :
Cờ S: là một cờ được đặt vào nếu việc tính toán đưa ra kết quả là(-)
Cờ O: là một cờ tràn, cờ này được đặt vào nếu kết quả đưa ra lớn hơn 8 bit.
Cờ Z : là cờ O, được đặt vào nếu kết quả đưa ra lớn hơn 8 bit.
Cờ I : là việc ngắt phần cứng.
Trên thực tế thì CPU có hơn 4 loại cờ kể trên.
Thanh ghi và các mã máy :
Các loại thanh ghi và các mã máy tương ứng như sau :
Tên thanh ghi : AL BL CL DL
Mã máy : 00 01 02 03
Ví dụ : Cộng 1 vào thanh CL thì sử dụng lệnh như sau :
Mã biên dịch : INC CL
Mã máy hex : A4 02
Nhị phân : 1010 0100 0000 0010
A4 : chỉ lệnh máy đưa đến lệnh INC
02 : chỉ thanh ghi CL
Trong trình biên dịch không có sự linh hoạt, mov thì tương tự như MOV và Mov. Mã thập lục phân không sử dụng hai mức như nhị phân.
Hệ thống số Hex :
Hệ Hex bao gồm các con số như 15, 3C và FF.Khi biên dịch thì có thể chuyển tất cả các con số thành hệ hex. Các thanh ghi trong CPU thì sử dụng mã nhị phân, hex và thập phân, do đó cần xem chi tiết việc chuyển đổi qua lại giữa hex và nhị phân.
Hệ thống số âm :
Ví dụ như FE là 1 số (-).
Trong 1 byte thì 4 bit da số các bit bên trái được sử dụng như 1 bit sign, nó có giá trị là -128 . Các byte có thể thay đổi từ -128 đến 127 ( đối với số - ) và từ 0 đến 255
Lệnh chuyển đổi gián tiếp :
Ðược sử dụng khi cần chyển dữ liệu vào trong RAM, lúc đó dấu ngoặc vuông được bao ngoài dữ liệu cần chuyển.
Ví du :
[15] : chỉ dữ liệu tại địa chỉ 15 hex được chuyển vào RAM. Khi chuyển dữ liệu vào thanh ghi thì cũng sử dụng dấu ngoặc vuông
Ví du� :
[BL] : đưa dữ liệu có trong thanh ghi BL chuyển vào RAM. Việc chuyển đổi này rất quan trọng và được sử dụng thường xuyên, thay vì đưa trực tiếp dữ liệu hoặc giá trị vào thanh ghi thì chuyển gián tiếp đến RAM. Việc di chuyển này được sử dụng thông qua con trỏ.
So sánh với chip 80X86 :
Ở một mức độ nhớ các lệnh của hệ mô phỏng này thì được xem như các mã nhớ của trình biên dịch. Các chương trình trở nên thực tế hơn nhờ việc thực hiện các lệnh, nhưng lệnh set thì không thực hiện được. Trong bộ mô phỏng này thì các lệnh sử dụng theo CPU 8 bit, còn các loại CPU còn lại thì không dùng để mô phỏng. Trong phiên bản các lệnh CALL, RET, INT, RET và việc ngắt phần cứng không qua các thủ tục và việc ngắt thì vẫn có thể thực hiện được.
Người soạn thảo chương trình mong muốn các lệnh trong bộ mô phỏng này tương tự như các lệnh trong chip 80X86, lệnh MUL và DIV thì đơn giản hơn chip 80X86. Sự bất lợi khi tiếp cận bộ mô phỏng là kết quả tạo ra cờ tràn quá nhiều. Việc sử dụng lệnh ADD và SUB trong bộ mô phỏng này có thể thực hiện được.
Trong 80X86 thì khi tính toán việc sử dụng lệnh DIV bao gồm cả lệnh DIV và MOD nhưng trong bộ mô phỏng thì sử dụng hai lệnh đó riêng biệt nhau.
Việc tạo ra mã máy của chip 80X86 và bộ mô phỏng tương tự nhau, hai loại mã máy thì khác nhau, mã máy của bộ mô phỏng đơn giản và gọn hơn.
Với loại 80X86, thì lệnh MOV AL, 15 gồm hai byte; byte thứ nhất chứa MOV AL còn giá trị 15 đưa vào một byte khác, điều này tạo ra sự khác nhau khi kết nối các lệnh MOV với các thanh ghi và nó khác nhiều khi sử dụng mã OP.
Bộ mô phỏng này cần 3 byte, MOV sử dụng 1 byte, loại mã OP, AL sử dụng 1 byte có mã 00. Dữ liệu 15 được đưa vào 1 byte, việc này tuy không hiệu quả nhưng rất đơn giản.
Các lệnh :
� ADD Cộng
� SUD Trừ
� MUL Nhân
� DIV Chia
� MOD Chia lấy phần dư
� AND Và
� OR Hoặc
� XOR So sánh
� INC Tăng lên 1
� DEC Giảm đi 1
� NOT Phủ định
� ROL Xoay các bit qua trái
� ROR Xoay các bit qua phải
� SHL Dịch chuyển các bit qua trái.
� SHR Dịch chuyển các bit qua phải.
Các ví dụ trực tiếp:
Mã biên dịch Mã máy
ADD AL, BL A0 00 01
SUB CL, DL A1 02 03
MUL AL, CL A2 00 02
DIV BL, DL A3 01 03
MOD DL, BL A6 03 01
AND CL, AL AA 02 00
OR CL, DL AB 02 03
XOR BL, AL AC 01 00
Các ví dụ tức thời :
ADD AL, 15 B0 00 15
SUB BL, 05 B1 01 05
MUL AL, 10 B2 00 10
DIV BL, 04 B3 01 04
MOD DL, 20 B6 03 20
AND CL, 55 BA 02 55
OR CL, AA BB 02 AA
XOR BL, FF BC 01 FF
Ví dụ :
ADD CL, AL ; cộng thanh ghi AL và CL sau đó kết quả đưa vào CL
ADD AL, 22 ; cộng 22 vào thanh ghi AL sau đó kết quả đưa vào AL.
Kết quả sau khi thực hiện phép cộng luôn luôn đưa vào thanh ghi đầu tiên.
DEC BL ; giảm 1 trong thanh ghi BL và kết quả đưa vào BL.
Các cờ :
+ Ðặt cờ Z khi kết quả tính toán ra 0.
+ Ðặt cờ S khi kết quả tính toán ra (-).
+ Ðặt cờ O khi kết quả là tràn.
Việc tràn xảy ra khi kết quả việc tính toán lớn hơn số bit đưa vào thanh ghi. Với thanh ghi 8 bit thì số lớn nhất có thể là : -128 đến + 127.
Với tập này, không sử dụng các loại cờ như Z, S hoặc O.
+ Tập lệnh : JMP JZ JNZ JS JNS JO JNO
+ Mã máy tương ứng : CO C1 C2 C3 C4 C5 C6
. JMP Jump : lệnh nhảy không có điều kiện.
. JZ Jump Zero : nhảy nếu cờ Z được đặt vào.
. JNZ Jump Not Zoro : nhảy nếu cờ Z không được đặt vào.
. JS Jump Sign : nhảy nếu có cờ Sign.
. JNS Jump Not Sign : nhảy nếu cờ Sign không đặt vào.
. JO Jump Overflow : nhảy nếu có cờ tràn (O) được đặt vào.
. JNO Jump Not Overflow : nhảy nếu cờ tràn (O) không được đặt vào.
� Ví dụ :
JMP HERE ; mã của trình biên dịch
CO ?? ; đây là mã máy tương ứng
; ?? địa chỉ mà người biên dịch cần tính toán
HERE : ; nhãn mà ngưòi biên dịch sử dụng
; khi việc tính toán đã hoàn chỉnh thì nhảy về địa chỉ
Lệnh JMP là một trong tập lệnh của thanh ghi con trỏ, việc tính toán được thực hiện bởi người biên dịch, dùng lệnh này có thể nhảy tới hoặc nhảy về lại trong độ dài +127 đến - 128 đó chính là nguyên nhân tại sao các con số lớn nhất lại có thể được lưu trữ trong 8 bit của vùng nhớ.
Các lệnh Jump khác thì làm việc tương tự, với điều kiện các cờ được đặt vào hoặc không.
HERE : ; một loại nhãn hợp yêu cầu
HERE : : ; không sử dụng được, chỉ cần một dấu hai chấm
1234 : ; không sử dụng được, nhãn phải là ký tự chữ hoặc là dấu "_".
Lệnh Move thực hiện giữa các thanh ghi với nhau .
Dữ liệu được di chuyển từ thanh ghi này đến thanh ghi khác.
Bộ mô phỏng thì không hỗ trợ loại lệnh này.
Cú pháp của lệnh MOV này :
MOV AL, BL
Lệnh này sử dụng gọn hơn việc sử dụng hai dòng lệnh :
PUSH AL
POP BL
Lệnh Move tức thời :
- Sử dụng khi cần di chuyển một số nào đó vào một thanh ghi.
Ví dụ :
Lệnh : MOV BL, 45
Mã máy : DO 01, 45
Trong đó :
DO : mã máy của lệnh MOVE tức thời
01 : thanh ghi BL
45 : số cần chuyển vào thanh ghi BL
Lệnh Move gián tiếp :
Dữ liệu được chuyển đổi giữa các thanh ghi và các vùng nhớ trong RAM.
Dữ liệu được đưa đến từ thanh ghi hoặc từ RAM, các địa chỉ trong RAM sử dụng lệnh này, ví dụ :
Lệnh : MOV BL, [15]
Mã máy : D1 01 15.
Trong đó :
D1 : mã máy của lệnh move gián tiếp
01 : thanh ghi BL
15 : địa chỉ RAM
Dữ liệu được chuyển từ địa chỉ [15] trong RAM đến thanh ghi BL.
Ðể chuyển dữ liệu từ 1 thanh ghi vào RAM.
Ví dụ :
Lệnh : MOV [13],BL
Mã máy : D2 13 01
Trong đó :
D2 : chỉ mã máy cho một lệnh Move gián tiếp
01 : thanh ghi BL
13 : địa chỉ RAM
Dữ liệu được di chuyển từ thanh ghi BL vào địa chỉ [13] trong RAM.
Lệnh Move gián tiếp dùng trong thanh ghi :
Một thanh ghi thường chứa các dữ liệu cần chuyển, một thanh ghi khác được lưu trữ trong vùng RAM.
Ví dụ :
Lệnh : MOV DL,[AL]
Mã máy : D3 03 00
Trong đó :
D3 : chỉ mã lệnh của lệnh Move gián tiếp dùng trong thanh ghi.
03 : thanh ghi DL
00 : thanh ghi AL
Thanh ghi AL có dữ liệu được chứa trong RAM, dữ liệu được chuyển từ RAM sang thanh ghi DL.
Dữ liệu cũng có thể di chuyển theo một hướng khác, ví dụ như :
Lệnh MOV [DL], AL
Mã máy D4 03 00
Trong đó :
D4 : mã lệnh của thanh ghi sử dụng lệnh Move gián tiếp.
03 : thanh ghi D2
00 : thanh ghi AL
Thanh ghi DL chứa dữ liệu có địa chỉ trong RAM. Dữ liệu được di chuyển từ thanh ghi DL vào RAM
- Khi bộ mô phỏng cần so sánh hai giá trị với nhau thì dùng lệnh CMP.
- Lệnh CMP sẽ thực hiện việc so sánh sau khi trừ hai giá trị đó với nhau.
- Nếu hai giá trị bằng nhau, lúc đo phép trừ có kết quả bằng 0, trường hơp này cờ Z sẽ được đặt vào.
- Nếu số bị trừ nhỏ hơn số trừ, thì sẽ không đặt cờ vào.
- Nếu số bị trừ lớn hơn số trừ, kết quả sẽ ra một số (-), trường hợp này cờ sign sẽ được đặt vào.
- Có thể sử dụng lệnh JS, JS để kiểm tra lại kết quả khi sử dụng lệnh CMP.
Lệnh so sánh hai thanh ghi : sử dụng hai thanh ghi để so sánh .
Ví dụ :
Lệnh CMP Al, BL
Mã máy DA 00, 01
Trong đó :
DA : mã của lệnh so sánh hai thanh ghi.
00 : thanh ghi AL
01 : thanh ghi BL
. Nếu hai thanh ghi có giá trị bằng nhau, thì đặt cờ Z
. Nếu thanh ghi thứ nhất AL có giá trị lớn hơn thanh ghi thứ hai, thì đặt S
. Các trường hợp còn lại thì sẽ không đặt cờ vào.
Lệnh so sánh tức thời : so sánh giữa thanh ghi với một số bất kỳ.
Ví dụ :
Lệnh CMP AL, 0D
Mã máy DB 00, 0D
Trong đó :
DB : chỉ mã của lệnh CMP
00 : thanh ghi AL
0D : con số cần so sánh
. Nếu giá trị của thanh ghi bằng với số cần so sánh, thì đặt cờ Z.
. Nếu thanh ghi có giá trị lớn hơn số thì đặt cờ S.
. Không đặt cờ cho các trường hợp còn lại.
+ Lệnh so sánh gián tiếp : so sánh thanh ghi với một dữ liệu có địa chỉ chứa trong RAM
Ví dụ :
Lệnh CMP CL, [20]
Mã máy DC 02, 20
Trong đó :
DC : mã lệnh.
02 : thanh ghi CL.
20 : dữ liệu có địa chỉ trong RAM cần so sánh với thanh ghi.
- Nếu thanh ghi có giá trị bằng giá trị của con số, thì đặt cờ Z
- Nếu thanh ghi CL có giá trị lớn hơn giá trị của số cần so sánh thì đặt cờ.
- Các trường hợp còn lại thì không đặt cờ.
Các lệnh này không sử dụng việc đặt cờ Z, S hoặc O
Sau khi đưa các dữ liệu vào ngăn xếp, phải đặt đúng theo thứ tự đã bị đa ngược vì ngăn xếp làm việc theo quy tắc xử lý ngõ ra cuối cùng trước sau đó mới đến ngõ ra đầu tiên ( quy luật LIFO : last in first out ).
Ngăn xếp được sử dụng để :
+ Lưu nội dung của thanh ghi để sau đó khôi phục lại .
+ Ðưa các tham số vào thủ tục sau đó quay về kết quả
Nội dung của thanh ghi được lưu trữ trong ngăn xếp sau đó sẽ được khôi phục lại, ngăn xếp làm việc theo nguyên tắc LIFO ( vào sau cùng ra trước hết)
. Lệnh PUSH : được sử dụng để đặt dữ liệu vào ngăn xếp.
. Lệnh POP : được sử dụng để lấy dữ liệu ra khỏi ngăn xếp.
Ví dụ :
1) Lệnh PUSH BL
Mã máy E0 01
Trong đó : E0 : mã máy của lệnh PUSH
01 : thanh ghi BL
2) Lệnh POP BL
Mã máy E1 01
Trong đó :
E1 : mã lệnh POP
01 : thanh ghi BL
Ngăn xếp có thể lưu trữ và khôi phục lại các cờ của thanh ghi.
Ví dụ :
1) Lệnh PUSHF
Mã máy EA
Trong đó :
EA : mã máy của lệnh PUSHF
2) Lệnh POPF
Mã máy EB
Trong đó : EB mã của lệnh POPF

- Sử dụng các thanh ghi sẵn có.
- Không đặt cờ Z, O, S
Các cờ và thanh ghi được lưu bởi các thủ tục hay ngắt và được khôi phục lại sau khi thủ tục hay ngắt hoàn thành công việc của nó.
. Sử dụng lệnh PUSH và PUSHF để lưu
. Sử dụng lệnh POP và POPF để phục hồi.
Cách gọi một thủ tục:
Xem ví dụ sau :
Lệnh CALL 30
Mã máy CA 30
CA : mã lệnh CALL
30 : địa chỉ bắt đầu của thủ tục được gọi
Quay trở lại từ một thủ tục :
Lệnh RET
Mã máy CB
Kết thúc một thủ tục thì sử dụng lệnh RET và quay trở về chương trình tới lệnh sau lệnh CALL. Mã máy của lệnh RET là CB.
Cách gọi lệnh Interrup thông thường :
Lệnh INT 03
Mã máy CC 03
CC : mã lệnh của INT, 03 : địa chỉ của vectơ ngắt sử dụng bởi lệnh INT
03 : vectơ ngắt thuộc vùng lưu trữ RAM, đây là địa chỉ bắt đầu của mã ngắt. Chương trình nhảy về địa chỉ của mã ngắt và thực hiện việc ngắt.
Quay trở lại từ một lệnh ngắt :
Lệnh IRET
Mã máy CD
Mã ngắt sau cùng là lệnh IRET, quay trở lại chương trình sử dụng lệnh A. Mã máy của lệnh IRET là CD.
Quay trở lại địa chỉ mà chương trình chuyển đến sau khi thực hiện việc ngắt và lưu trong ngăn xếp.

Không đặt các cờ Z, S, O
Các port được nối đến bộ mô phỏng và đưa ra ngoài.
IN 00 : đọc từ bàn phím, nhập từ bàn phím
OUT 01 : xuất dữ liệu ra điều khiển đèn giao thông
Ví dụ :
Lệnh IN 00
Mã máy F0 00
FO : mã máy của lệnh IN, dữ liệu được đưa vào từ 1 port
00 : chỉ số port mã dữ liệu xuất ra.
Bộ mô phỏng gồm có các port : 0HEX đến 0FHEX
Lệnh OUT 01
Mã máy F1 01
F0 : mã máy của lệnh OUT, dữ liệu được đưa ra các port
01 : chỉ vị trí của port
Bao gồm : HALT, MOP, CLO, ORG, DB, CLI, STI
Các lệnh này không đặt các cờ Z, S, O
Chú ý :
CLI : lệnh xóa cờ I
SET : lệnh đặt cờ I
� Lệnh HALT : lệnh dừng chương trình
Lệnh HALT
Mã máy 00
00: mã lệnh của HALT
Chương trình sẽ ngừng nếu gặp lệnh HALT, chương trình sẽ chạy lại nếu hủy bỏ lệnh này. Bạn có thể sử dụng một vài lệnh HALT trong một chương trình và chỉ sử dụng đúng một lệnh END.
� Lệnh NOP : không làm gì trong một chu kỳ xung
Lệnh NOP
Mã máy FF
FF : chỉ mã của lệnh NOP.
Chương trình sẽ không làm gì cho một chu kỳ xung clock, sau đó chương trình sẽ hoạt động trở lại. NOP được sử dụng như một thủ tục delay cho phép giữa các mạch điện với CPU và khi đó gọi là "trạng thái chờ ".
� Lệnh CLO : đóng tất cả cửa sổ của các chương trình khác.
Lệnh CLO
Mã máy FE
FE : mã lệnh CLO
Chỉ được sử dụng mã này trong bộ mô phỏng, và dùng để đóng các cửa sổ của chương trình khác. Việc này rất cần thiết vì màn hình lúc đó sẽ không có chương trình khác, không tạo ra sự lẫn lộn.
� Lệnh ORG : Mã gốc
Mã được phát sinh từ một địa chỉ bắt đầu lớn hơn 0, việc này thì hữu dụng để đặt các thủ tục , các ngắt hay bảng dữ liệu tại địa chỉ trong vùng nhớ.
ORG 30
Không có mã máy nào được phát ra nhưng địa chỉ thường đặt ở dữ liệu bắt đầu là 30
� Lệnh DB : định nghĩa biến kiểu byte hay chuỗi
Là một cách tiện lợi khi đưa chuỗi mã ASCII vào vùng nhớ RAM
DB " HELLO"
Mã ASCII của "H,E,L,L,O" được chuyển vào RAM
DB FF
Ðây cũng là một cách để chuyển giá trị Hex vào RAM.
Có thể sử dụng để nhận biết sự kết thúc của chuỗi với mã ZERO, các vectơ ngắt có thể được chuyển vào cùng với DB. Bảng dữ liệu của mã Hex cũng được tải vào, mã của CPU có thể chuyển mô�t cách trực tiếp, nó làm việc tương tự như cách làm việc mà người biên dịch mong muốn.
� Lệnh CLI : xóa cờ I (xóa cờ cho phép ngắt)
Nếu cờ I bị xóa thì phần cứng bị ngắt. Ðây là trạng thái mặc định trong chương trình mô phỏng. Khởi động lại CPU thì cờ I vẫn bị xóa, trong thời gian bị ngắt thì phần cứng không làm việc.
� Lệnh STI : thiết lập cờ I (lập cờ cho phép ngắt)
Nếu như cờ I được thiết lập thì bộ mô phỏng sẽ tạo ra lệnh INT 02 tại khoảng thời gian bình thường,việc này rất cần thiết khi có vector ngắt được lưu tại địa chỉ 02 mà chỉ đến mã điều khiển ngắt ở nơi khác. Nếu việc ngắt xuất hiện nhanh hơn việc xử lý thì việc phá huỷ hệ thống mô phỏng sẽ xảy ra. Ðiều chỉnh tốc độ xung clock CPU và khoảng thời gian để ngăn ngừa trường hợp này.

Dec Hex Dec Hex Dec Hex Dec Hex
-128 80 -127 81 -126 82 -125 83
-124 84 -123 85 -122 86 -121 87
-120 88 -119 89 -118 8A -117 8B
-116 8C -115 8D -114 8E -113 8F
-112 90 -111 91 -110 92 -109 93
-108 94 -107 95 -106 96 -105 97
-104 98 -103 99 -102 9A -101 9B
-100 9C -099 9D -098 9E -097 9F
-096 A0 -095 A1 -094 A2 -093 A3
-092 A4 -091 A5 -090 A6 -089 A7
-088 A8 -087 A9 -086 AA -085 AB
-084 AC -083 AD -082 AE -081 AF
-080 B0 -079 B1 -078 B2 -077 B3
-076 B4 -075 B5 -074 B6 -073 B7
-072 B8 -071 B9 -070 BA -069 BB
-068 BC -067 BD -066 BE -065 BF
-064 C0 -063 C1 -062 C2 -061 C3
-060 C4 -059 C5 -058 C6 -057 C7
-056 C8 -055 C9 -054 CA -053 CB
-052 CC -051 CD -050 CE -049 CF
-048 D0 -047 D1 -046 D2 -045 C3
-044 D4 -043 D5 -042 D6 -041 D7
-040 D8 -039 D9 -038 DA -037 DB
-036 DC -035 DD -034 DE -033 DF
-032 E0 -031 E1 -030 E2 -029 E3
-028 E4 -027 E5 -026 E6 -025 E7
-024 E8 -023 E9 -022 EA -021 EB
-020 EC -019 ED -018 EE -017 EF
-016 F0 -015 F1 -014 F2 -013 F3
-012 F4 -011 F5 -010 F6 -009 F7
-008 F8 -007 F9 -006 FA -005 FB
-004 FC -003 FD -002 FE -001 FF
Dec Hex Dec Hex Dec Hex Dec Hex
+000 00 +001 01 +002 02 +003 03
+004 04 +005 05 +006 06 +007 07
+008 08 +009 09 +010 0A +011 0B
+012 0C +013 0D +014 0E +015 0F
+016 10 +017 11 +018 12 +019 13
+020 14 +021 15 +022 16 +023 17
+024 18 +025 19 +026 1A +027 1B
+028 1C +029 1D +030 1E +031 1F
+032 20 +033 21 +034 22 +035 23
+036 24 +037 25 +038 26 +039 27
+040 28 +041 29 +042 2A +043 2B
+044 2C +045 2D +046 2E +047 2F
+048 30 +049 31 +050 32 +051 33
+052 34 +053 35 +054 36 +055 37
+056 38 +057 39 +058 3A +059 3B
+060 3C +061 3D +062 3E +063 3F
+064 40 +065 41 +066 42 +067 43
+068 44 +069 45 +070 46 +071 47
+072 48 +073 49 +074 4A +075 4B
+076 4C +077 4D +078 4E +079 4F
+080 50 +081 51 +082 52 +083 53
+084 54 +085 55 +086 56 +087 57
+088 58 +089 59 +090 5A +091 5B
+092 5C +093 5D +094 5E +095 5F
+096 60 +097 61 +098 62 +099 63
+100 64 +101 65 +102 66 +103 67
+104 68 +105 69 +106 6A +107 6B
+108 6C +109 6D +110 6E +111 6F
+112 70 +113 71 +114 72 +115 73
+116 74 +117 75 +118 76 +119 77
+120 78 +121 79 +122 7A +123 7B
+124 7C +125 7D +126 7E +127 7F