1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo tiểu luận vi xử lý đề tài tìm hiểu tập lệnh bộ vxl 8086 8088

40 0 0

Đ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

Nội dung

Bộ vi xử lý này hỗ trợ một tập lệnh phong phú và mạnh mẽ, cho phép thực hiện nhiều công việc khác nhau như xử lý số học, xử lý chuỗi ký tự, và quản lý bộ nhớ.Tập lệnh của bộ vi xử lý 808

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP VINH

BÁO CÁO TIỂU LUẬN

Trang 2

những bước tiến đáng kinh ngạc trong lĩnh vực công nghệ thông tin Một trong những cột mốc quan trọng trong lịch sử máy tính là việc ra đời của bộ vi xử lý 8086/8088, một trong những bộ vi xử lý đầu tiên của Intel.

Bộ vi xử lý 8086/8088 đã mở ra một kỷ nguyên mới trong lĩnh vực lập trình máy tính và đã có một ảnh hưởng sâu sắc đến sự phát triển của ngành công nghệ thông tin Sự tìm hiểu về tập lệnh của bộ vi xử lý này là một chủ đề quan trọng và thú vị đối với những người quan tâm đến lĩnh vực này.

Trong tiểu luận này, chúng ta sẽ khám phá và tìm hiểu sâu về tập lệnh của bộ vi xử lý 8086/8088 Chúng ta sẽ đi qua các khái niệm cơ bản về bộ vi xử lý, kiến trúc của 8086/8088, cách thức hoạt động của nó và các tập lệnh cơ bản mà nó hỗ trợ.

Xin chân thành cảm ơn!

Sinh viên thực hiện

Trần Văn CôngHoàng Văn Long

Lê Thị OanhAnousin Keomixay

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆPVINH

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh phúc

Trang 3

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

2.3.1Tính tương tác của nhóm trong quá trình làm đồ án/báo cáo

Trang 5

CHƯƠNG 1: GIỚI THIỆU CHUNG 1

Trang 8

CHƯƠNG 1: GIỚI THIỆU CHUNG

1.1 Giới thiệu về tập lệnh vxl 8086/8088

Bộ vi xử lý 8086/8088 là một trong những bộ vi xử lý đầu tiên được phát triển bởi Intel vào những năm 1970 và 1980 Đây là những bộ vi xử lý 16-bit có kiến trúc x86 đầu tiên và đã đặt nền móng cho sự phát triển mạnh mẽ của ngành công nghệ máy tính.

Tập lệnh của bộ vi xử lý 8086/8088 được thiết kế dựa trên kiến trúc von Neumann, trong đó các lệnh và dữ liệu được lưu trữ trong bộ nhớ chung Bộ vi xử lý này hỗ trợ một tập lệnh phong phú và mạnh mẽ, cho phép thực hiện nhiều công việc khác nhau như xử lý số học, xử lý chuỗi ký tự, và quản lý bộ nhớ.

Tập lệnh của bộ vi xử lý 8086/8088 được biểu diễn dưới dạng các mã máy, trong đó mỗi lệnh được mã hóa thành một chuỗi các bit nhị phân Các lệnh này thực hiện các phép tính và thao tác trên các thanh ghi (registers), bộ nhớ và các thiết bị ngoại vi.

1.2 Lý do chọn đề tài

Lịch sử quan trọng: Bộ vi xử lý 8086/8088 đã đóng vai trò quan trọng trong sự phát triển của ngành công nghệ thông tin Nghiên cứu về tập lệnh của bộ vi xử lý này giúp bạn hiểu rõ hơn về lịch sử và tiến trình phát triển của công nghệ máy tính.

Trang 9

Cơ sở kiến thức cần thiết: Tìm hiểu về tập lệnh của bộ vi xử lý 8086/8088 cung cấp cho bạn những kiến thức cơ bản về lập trình và kiến trúc máy tính Đây là những kiến thức quan trọng và cần thiết cho việc hiểu sâu về lĩnh vực công nghệ thông tin.

Tính ứng dụng cao: Kiến thức về tập lệnh của bộ vi xử lý 8086/8088 có thể áp dụng vào các dự án và ứng dụng thực tế Đặc biệt, nếu bạn quan tâm đến việc lập trình máy tính cổ điển hoặc nghiên cứu lĩnh vực lịch sử công nghệ, việc tìm hiểu về tập lệnh này sẽ hữu ích và thú vị.

Nền tảng cho việc nghiên cứu tiếp: Tìm hiểu về tập lệnh của bộ vi xử lý 8086/8088 có thể làm nền tảng cho việc nghiên cứu và tìm hiểu sâu hơn về các kiến trúc máy tính hiện đại và các bộ vi xử lý tiến tiến khác.

Thách thức và cơ hội học tập: Tìm hiểu về tập lệnh của bộ vi xử lý 8086/8088 đòi hỏi sự tập trung và nỗ lực Qua quá trình nghiên cứu, bạn sẽ đối mặt với những thách thức và có cơ hội phát triển kỹ năng lập trình và hiểu rõ hơn về nguyên lý hoạt động của máy tính.

1.3 Mục đích chọn đề tài

Nâng cao kiến thức về kiến trúc máy tính: Tìm hiểu về tập lệnh của bộ vi xử lý 8086/8088 giúp bạn hiểu rõ hơn về cách hoạt động của một bộ vi xử lý và kiến trúc máy tính 16-bit Điều này giúp bạn xây dựng một cơ sở kiến thức vững chắc về nguyên lý hoạt động của máy tính.

Làm quen với lập trình cổ điển: Tập lệnh của bộ vi xử lý 8086/8088 là một ví dụ điển hình về lập trình cổ điển Nghiên cứu và thực hành với tập lệnh này giúp

Trang 10

bạn làm quen với cách lập trình trực tiếp trên phần cứng và hiểu rõ hơn về các khái niệm quan trọng như thanh ghi, bộ nhớ, và lệnh máy.

Khám phá lịch sử công nghệ: Bộ vi xử lý 8086/8088 đã đóng vai trò quan trọng trong sự phát triển của công nghệ máy tính Nghiên cứu về tập lệnh này giúp bạn khám phá và hiểu rõ hơn về quá trình tiến hóa của ngành công nghệ thông tin và những bước đột phá quan trọng trong lĩnh vực này.

Áp dụng trong dự án và ứng dụng thực tế: Kiến thức về tập lệnh của bộ vi xử lý 8086/8088 có thể được áp dụng trong các dự án và ứng dụng thực tế Đặc biệt, nếu bạn quan tâm đến lập trình nhúng, viết trình điều khiển phần cứng, hoặc nghiên cứu lĩnh vực máy tính cổ điển, việc tìm hiểu về tập lệnh này sẽ mang lại lợi ích rõ ràng.

Phát triển kỹ năng lập trình và giải quyết vấn đề: Nghiên cứu và thực hành với tập lệnh của bộ vi xử lý 8086/8088 đòi hỏi sự tập trung và kỹ năng lập trình Qua quá trình này, bạn có cơ hội phát triển kỹ năng lập trình, khả năng giải quyết vấn đề và tư duy logic.

Trang 11

CHƯƠNG 2: TẬP LỆNH VXL 8088/8086

2.1 Dạng lệnh

Một lệnh của vi xử lý 86 có dạng tổng quát như sau: <Mã gợi nhớ> <Toán hạng đích>,<Toán hạng nguồn>

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:

Trang 12

địa chỉ tổng hợp được gọi là đị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.

 Ví dụ:

• Địa chỉ hiệu dụng hợp lệ: [1000h], [SI], [DI], [BX], [BP]

[SI+BX], [SI+BP], [DI+BX], [DI+BP], [SI+1000h], [DI+100h], [BX+1], [BP+1] [SI][BX][1000h], [SI+ BP+1000h], [DI+BX][1000h], [DI+1000h][BP]

• Địa chỉ hiệu dụng không hợp lệ:

[70000], [AX], [SI+DI+1000h], [BX][BP]

• Đị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

Trang 13

địa chỉ hiệu dụng.

2.2 Nhóm lệnh chuyển dữ liệu 2.2.1 Lệnh MOV

 Dạng lệnh:

MOV reg,regMOV reg,immed

MOV mem,regMOV mem,immed

MOV reg,memMOV mem16,segreg

MOV reg16,segreg MOV segreg,mem16

Trang 14

POP reg16 POP segreg

 Trường hợp AX sẽ nhập byte thấp trước, byte cao sau.

Dạng lệnh có immed8 dùng trong trường hợp địa chỉ cổng xuất nhập 8 bit.

Trang 15

Ví dụ: IN AL,61h IN AX,40h

 Dạng lệnh có thanh ghi DX dùng cho trường hợp địa chỉ cổng 16 bit Tuy nhiên dạng này vẫn có thể dùng cho cổng xuất nhập có địa chỉ 8 bit và có lợi khi sử dụng địa chỉ cổng để nhập nhiều lần.

2.2.6 Lệnh OUT

 Dạng lệnh: OUT immed8,accum OUT DX,accum

 Giải thích: [cổng IO] btl

 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.

Trang 16

 Giải thích: ES [địa chỉ+3,địa chỉ+2]

 Nạp 4 byte bộ nhớ (con trỏ) vào thanh ghi ES và một thanh ghi tổng quát.

2.3 Nhóm lệnh số học 2.3.1Lệnh ADD

 Dạng lệnh:

ADD reg,regADD reg,immed

ADD mem,reg ADD mem,immed

ADD reg,memADD 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  Ví dụ:

ADD CX,SI ; CX ← CX + SI

Trang 17

 Dạng lệnh: ADC reg,regADC reg,immed ADC mem,regADC mem,immed ADC reg,memADC 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.

Trang 18

INC WORD PTR [1000h]

2.3.4Lệnh AAA

 Dạng lệnh: AAA

 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.

2.3.5Lệnh SUB

 Dạng lệnh: SUB reg,regSUB reg,immed

 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.

Dạng lệnh: DEC regDEC mem

 Giảm tức là trừ 1 vào toán hạng đích nhưng không ảnh hưởng cờ nhớ.

2.3.8 Lệnh NEG

Trang 19

 Dạng lệnh: NEG regNEG mem

 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ờ.

2.3.10 Lệnh AAS

 Dạng lệnh: AAS

 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.

Trang 20

2.3.12 Lệnh MUL

 Dạng lệnh: MUL regMUL mem

 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.

• Phép nhân 8 bit: thực hiện nhân AL với toán hạng nguồn, kết quả 16 bit cất trong thanh ghi AX.

• Phép nhân 16 bit: thực hiện nhân AX với toán hạng nguồn, kết quả 32 bit cất trong 2 thanh ghi DX và AX DX giữ 16 bit cao, AX giữ 16 bit thấp.

Ví dụ: Nếu AL=5, CH=4, sau khi thực hiện lệnh MUL CH

Trang 21

NOT WORD PTR [BX+1000h]

2.4.2 Lệnh SHL/SAL

 Dạng lệnh: SHL reg,1SHL mem,1 SHL reg,CLSHL mem,CL

 Giải thích: thđ ← (thđ) dịch trái 1 hay nhiều bit.

 Dịch trái Dạng SHL reg,1 dùng để dịch trái 1 bit Dạng SHL reg,CL dùng để dịch trái nhiều bit Lúc đó thanh ghi CL chứa số bit cần dịch.

 Dạng lệnh: SAR reg,1SAR mem,1 SAR reg,CLSAR mem,CL

 Giải thích: thđ ← (thđ) dịch phải số học 1 hay nhiều bit.

 Dịch phải số học Dạng có thanh ghi CL dùng để dịch nhiều bit.

Trang 22

2.4.5 Lệnh ROL

 Dạng lệnh: ROL reg,1ROL mem,1 ROL reg,CLROL mem,CL

 Giải thích: thđ ← (thđ) quay trái không qua cờ nhớ 1 hay nhiều bit.

 Quay trái không qua cờ nhớ Dạng có thanh ghi CL dùng để quay nhiều bit.

2.4.6 Lệnh ROR

 Dạng lệnh: ROR reg,1ROR mem,1 ROR reg,CLROR mem,CL

 Giải thích: thđ ← (thđ) quay phải không qua cờ nhớ 1 hay nhiều bit.

 Quay phải không qua cờ nhớ Dạng có thanh ghi CL dùng để quay nhiều bit.

2.4.7 Lệnh RCL

 Dạng lệnh: RCL reg,1RCL mem,1 RCL reg,CLRCL mem,CL

 Giải thích: thđ ← (thđ) quay trái qua cờ nhớ 1 hay nhiều bit.

 Quay trái qua cờ nhớ Dạng có thanh ghi CL dùng để quay nhiều bit  Ví dụ: RCL BX,1

MOV CL,4

RCLBYTE PTR [1000h],CL ; quay trái qua cờ nhớ 4 bit.

Trang 23

2.4.8 Lệnh RCR

 Dạng lệnh: RCR reg,1RCR mem,1 RCR reg,CLRCR mem,CL

 Giải thích: thđ ← (thđ) quay phải qua cờ nhớ 1 hay nhiều bit.

 Quay phải qua cờ nhớ Dạng có thanh ghi CL dùng để quay nhiều bit  Ví dụ: RCR CH,1

MOV CL,2

RCRBYTE PTR [1800h],CL ; quay phải qua cờ nhớ 2 bit.

2.4.9 Lệnh AND

 Dạng lệnh: AND reg,regAND reg,immed AND mem,regAND mem,immed AND reg,memAND accum,immed

Trang 24

 Dạng lệnh: XOR reg,regXOR reg,immed XOR mem,regXOR mem,immed XOR reg,memXOR accum,immed

 Giải thích: thđ ← thđ XOR thn.

 Hay ngoại luận lý Xóa cờ nhớ về 0.

Ví dụ: XOR DL,80h ; đảo bit 7

XOR [2000h],AL ; [2000h] ← [2000h] XOR AL

2.5 Xử lý chuỗi

2.5.1 Tiếp đầu lệnh REP

 Dạng 1: REP lệnh xử lý chuỗi

 Giải thích: giảm CX, lặp lại lệnh theo sau Nếu CX  0

 Lặp lại không điều kiện Thanh ghi CX giữ số lần lặp Thường dùng với

Trang 25

lệnh chép chuỗi MOVS  Ví dụ: MOV CX,10

REP MOVSB ; thực hiện lệnh MOVSB 10 lần  Dạng 2: REPE / REPZ lệnh xử lý chuỗi

 Giải thích: giảm CX, lặp lại lệnh theo sau Nếu CX  0 và ZF = 1

 Lặp lại nếu bằng / nếu không Hai điều kiện CX 0 và ZF = 1 phải thỏa đồng 0 và ZF = 1 phải thỏa đồng thời thì lệnh theo sau mới được lặp lại Nếu không, làm qua lệnh kế Thường dùng với lệnh so sánh chuỗi CMPS để tìm chuỗi con trong chuỗi lớn.

Ví dụ: MOV CX,10

REPE CMPSB ; thực hiện lệnh CMPSB nếu chưa đủ 10

; lần và hai chuỗi vẫn còn bằng nhau  Dạng 3: REPNE / REPNZ lệnh xử lý chuỗi

Giải thích: giảm CX, lặp lại lệnh theo sau Nếu CX  0 và ZF = 0

 Lặp lại nếu bằng / nếu không Hai điều kiện CX 0 và ZF = 1 phải thỏa 0 và ZF = 1 phải thỏa đồng đồng thời thì lệnh theo sau mới được lặp lại Nếu không, làm qua lệnh kế Thường dùng với lệnh quét chuỗi SCAS để dò tìm ký tự tong chuỗi.

Ví dụ: MOV CX,20 REPNE SCASB

2.5.2 Lệnh MOVS

Trang 26

 Dạng lệnh: MOVSB MOVSW

 Chép byte hay word từ nguồn sang chuỗi đích Cặp thanh ghi DS:SI giữ địa chỉ chuỗi nguồn Cặp thanh ghi ES:DI giữ địa chỉ chuỗi đích Các địa chỉ chuỗi nguồn trong thanh ghi SI và địa chỉ chuỗi đích trong thanh ghi DI được tự động tăng hay giảm sau mỗi lần chép Chiều tăng giảm địa chỉ tùy thuộc cờ định hướng DF DF=0 xử lý tăng địa chỉ DF=1 xử lý giảm địa chỉ.

 Lệnh này thường dùng kết hợp với tiếp đầu lệnh REP để thực hiện việc chép một chuỗi hay dãy Lúc đó thanh ghi CX giữ chiều dài chuỗi nguồn.

Ví dụ 1 chép byte: chép 80h byte từ địa chỉ 3000:1000 sang địa chỉ

Ví dụ 2 chép word: yêu cầu như ví dụ 1

MOV AX,3000h MOV DS,AX MOV SI,1000h

MOV AX,4800h MOV ES,AX

Trang 27

MOV DI,0C200h

2.5.3 Lệnh CMPS

 Dạng lệnh: CMPSB CMPSW

 So sánh byte hay word của chuỗi nguồn với chuỗi đích Cặp thanh ghi DS:SI giữ địa chỉ chuỗi nguồn Cặp thanh ghi ES:DI giữ địa chỉ chuỗi đích Các thanh ghi giữ địa chỉ offset SI, DI được tự động tăng hay giảm sau mỗi lần so sánh Chiều tăng giảm địa chỉ tùy thuộc cờ định hướng DF DF=0 xử lý tăng địa chỉ DF=1 xử lý giảm địa chỉ.

 Lệnh này thường dùng kết hợp với tiếp đầu lệnh REPE để thực hiện việc so sánh hai chuỗi hay hai dãy với nhau để tìm kiếm một chuỗi con trong một chuỗi lớn Lúc đó thanh ghi CX giữ chiều dài chuỗi.

 Có thể có hai nguyên nhân làm ngừng lệnh so sánh chuỗi: hoặc hai chuỗi có byte hay word khác nhau (ZF = 0), hoặc hai chuỗi giống nhau (ZF = 1)  Ví dụ: REPE CMPSB

2.5.4 Lệnh SCAS

 Dạng lệnh: SCASB SCASW

 Lệnh này thường dùng kết hợp với tiếp đầu lệnh REPNE để thực hiện việc tìm kiếm một dữ liệu trong một chuỗi Lúc đó thanh ghi CX giữ chiều dài chuỗi.

Trang 28

 Có thể có hai nguyên nhân làm ngừng lệnh quét chuỗi: hoặc tìm thấy dữ liệu trong chuỗi (ZF=1 hay CX 0), hoặc hết chuỗi mà vẫn chưa tìm thấy dữ liệu

nearlabelCALL mem16

CALL farlabelCALL mem32

CALL reg16

 Gọi chương trình con Quá trình gọi chương trình con được thực hiện qua 2 bước:

• Cất địa chỉ trở về - chính là địa chỉ lệnh ngay sau lệnh CALL - vào chồng • Chuyển sự thi hành chương trình đến địa chỉ lệnh đầu tiên của chương trình

 Địa chỉ trở về chính là nội dung hiện tại của cặp thanh ghi CS:IP.

• Lệnh gọi trực tiếp đến nhãn nearlabel chỉ cất nội dung IP, và nạp giá trị offset mới vào IP (nội dung CS không đổi) nên chỉ có thể dùng để gọi bên trong một segment Lệnh này còn được gọi là lệnh gọi gần hay gọi trong segment Nhãn nearlabel còn được gọi là nhãn gần và có kích thước 2 byte.

 Lệnh gọi trực tiếp đến nhãn farlabel cất nội dung IP lẫn CS, sau đó nạp giá

Trang 29

trị offset mới vào IP, nạp giá trị segment mới vào CS nên có thể dùng để gọi đến bất kỳ vị trí bộ nhớ nào cũng được Lệnh này còn được gọi là lệnh gọi xa hay gọi ngoài segment Nhãn farlabel còn được gọi là nhãn xa và có kích thước 4 byte.

• Ví dụ: CALL 3000:F008

 Lệnh gọi gián tiếp qua thanh ghi reg16 cũng là một lệnh gọi gần Lúc đó địa chỉ chương trình con được nạp vào thanh ghi trước khi thực hiện lệnh gọi.

 Lệnh gọi gián tiếp qua bộ nhớ mem16 cũng là một lệnh gọi gần Lúc đó địa chỉ chương trình con được đặt tại ô nhớ có địa chỉ hiệu dụng trong lệnh.

• Ví dụ: CALL [BX+3000h]

 Lệnh gọi gián tiếp qua bộ nhớ mem32 là một lệnh gọi xa Lúc đó địa chỉ chương trình con đặt tại ô nhớ có địa chỉ hiệu dụng trong lệnh phải là địa chỉ 4 byte Lúc đó cần phải chỉ rõ ra hoạt động bộ nhớ 32 bit bằng cách dùng toán tử DWORD PTR.

• Ví dụ: CALL DWORD PTR [SI+2000h]

 Với lệnh gọi gián tiếp qua bộ nhớ ta có thể tổ chức sắp xếp các địa chỉ chương trình con thành một bảng trong bộ nhớ gọi là bảng nhảy Lúc đó mỗi chương trình con sẽ được gọi theo số thứ tự của nó trong bảng nhảy.

2.6.2 Lệnh JMP

 Dạng lệnh: JMP shortlabel JMP mem16

Ngày đăng: 24/04/2024, 14:52

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w