1. Trang chủ
  2. » Giáo Dục - Đào Tạo

LẬP TRÌNH ASSEMBLER và các CÔNG cụ lập TRÌNH ASSEMBLER TRÊN máy TÍNH (cấu TRÚC máy TÍNH SLIDE)

69 66 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

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 669,93 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trắc nghiệm, bài giảng pptx các môn chuyên ngành Y dược và các ngành khác hay nhất có tại “tài liệu ngành Y dược hay nhất”; https://123doc.net/users/home/user_home.php?use_id=7046916. Slide bài giảng môn cấu trúc máy tính ppt dành cho sinh viên chuyên ngành công nghệ - kỹ thuật và các ngành khác. Trong bộ sưu tập có trắc nghiệm kèm đáp án chi tiết các môn, giúp sinh viên tự ôn tập và học tập tốt môn cấu trúc máy tính bậc cao đẳng đại học chuyên ngành công nghệ - kỹ thuật và các ngành khác

Trang 1

Bài 6

LẬP TRÌNH ASSEMBLER VÀ CÁC CÔNG CỤ LẬP TRÌNH ASSEMBLER TRÊN MÁY TÍNH

Trang 2

Nội dung

1) Giới thiệu lập trình hợp ngữ

2) Tập lệnh của vi xử lý 8086

3) Công cụ gỡ rối DEBUG

4) Công cụ mô phỏng Emu8086

5) Một vài ví dụ minh họa

Trang 3

1) Giới thiệu lập trình hợp ngữ

a) Giới thiệu chung

b) Định nghĩa đọan rút gọn và đầy đủ

c) Các phần cơ bản của hợp ngữ

d) Tập tin dạng com và exe

Trang 4

a) Giới thiệu chung

• Hîp ng÷ (Assembly language) lµ ng«n ng÷ lËp tr×nh cÊp thÊp g¾n víi ng«n ng÷ m¸y Ng«n ng÷ lËp tr×nh d ưới d¹ng ký hiÖu,

Trang 5

b) Định nghĩa đọan rỳt gọn và đầy đủ

• Có hai cách định nghĩa đoạn chư ơng trình:

- Dạng đầy đủ (Full segment definition)

- Dạng rút gọn (simplified segment definition).

Trang 6

c) C¸c phÇn c¬ b¶n cña hîp ng÷

TÖp tin hîp ng÷ nguån: TËp hîp c¸c ph¸t biÓu hîp ng÷ (Assembly

language statement) Mçi mét ph¸t biÓu ® ưîc viÕt trªn 1 dßng §ã

cã thÓ lµ

1 lÖnh hợp ngữ (Assembly language Instruction)

1 chØ dÉn hợp ngữ (Assembler directive)

Trang 7

Lệnh hợp ngữ

• Khuôn dạng của 1 lệnh hợp ngữ

– [Nhãn:] [Tên gợi nhớ] [toán hạng] [;Ghi chú]

Nhãn (Label): đ ược dùng để thay thế địa chỉ câu lệnh Các câu lệnh khác

tham chiếu đến dòng lệnh thông qua nhãn của nó.

Tên gợi nhớ (Mnemonic): xác định hành động mà CPU thực hiện Ví dụ: INT 21,

MOV.

Toán hạng (Operand): xác định các dữ liệu mà câu lệnh cần xử lý Toán hạng th

ường là các hằng, tên các thanh ghi, tên tư ợng trư ng hay biểu thức.

Ghi chú (Comment): luôn bắt đầu bằng dấu chấm phẩy ";" đ ược sử dụng để

ghi các lời bình, chú giải Vùng này asembler sẽ bỏ qua khi dịch.

Trang 9

i Toán hạng thanh ghi

(Register addressing mode)

• Trong chế độ địa chỉ này, dữ liệu đư ợc l ưu trong thanh ghi làm toán hạng Các thanh ghi có thể sử dụng trong chế độ địa chỉ này là:

• Chú ý: - Bộ nhớ sẽ không đư ợc truy nhập ở chế độ địa chỉ này

- Các thanh ghi trong lệnh phải phù hợp về kích th ước.

Trang 10

ii Toán hạng trực hằng (Chế độ địa chỉ tức thì -

Immediate addressing mode)

• Toán hạng nguồn là một hằng số (tức một giá trị cụ thể 8 bit hay 16 bit đư ợc chỉ rõ trong câu lệnh)

• Các giá trị này có thể cho dư ới nhiều dạng: thập phân không dấu và có dấu, nhị phân, thập lục phân, các tên tư ợng tr ưng đã đ ược định nghĩa bằng lệnh EQU hay =

Trang 11

iii Toán hạng bộ nhớ (Memory addressing mode)

Toán hạng bộ nhớ trực tiếp (Direct addressing mode)

Toán hạng bộ nhớ gián tiếp

Chế độ thanh ghi gián tiếp (Register Indirect Addressing Mode)

Chế độ địa chỉ cơ sở (Based Relative Addressing Mode)  

Chế độ địa chỉ chỉ số (Indexed Relative Addressing Mode )

Chế độ địa chỉ chỉ số cơ sở (Based Indexed Relative Addressing

Mode)

Trang 12

Toán hạng bộ nhớ trực tiếp (Direct addressing

mode)

• Địa chỉ của dữ liệu trong bộ nhớ do một toán hạng có trong

lệnh xác định trực tiếp Địa chỉ này là một tên hay một biểu thức hằng Có thể kết hợp thêm toán tử chỉ số [ ], toán tử +, -

và toán tử (:).

• Nếu trong một toán hạng không chỉ rõ tên thanh ghi đoạn thì thanh ghi đoạn đ ược dùng là thanh ghi DS, song cũng có thể

dùng toán tử (:) để chỉ thanh ghi đoạn khác

• VD: Chuyển nội dung 16 bit tại địa chỉ 100h trong đoạn DS

vào thanh ghi AX.

MOV AX, DS:[100h]

Trang 13

Toán hạng bộ nhớ gián tiếp  

• Toán hạng bộ nhớ gián tiếp cho phép dùng các thanh ghi và độ dời để chỉ đến các giá trị trong bộ nhớ Chỉ có 4 thanh ghi

BX, BP, SI, DI có thể dùng với toán hạng bộ nhớ gián tiếp.

• Độ dời có thể là một hằng hay một toán hạng bộ nhớ trực tiếp Một toán hạng có nhiều độ dời, các độ dời sẽ đ ược cộng lại thành một độ dời chung xác định khi dịch.

Trang 14

Toán hạng bộ nhớ gián tiếp

Chế độ thanh ghi gián tiếp (Register Indirect Addressing Mode)

– Địa chỉ của bộ nhớ chứa toán hạng đư ợc thanh ghi xác định Các thanh ghi sử dụng cho mục đích này là SI, DI BX Và trong tr ường hợp này, các thanh ghi này xác định độ lệch, còn thanh ghi đoạn là DS  

• VD MOV AL,[BX] ; địa chỉ đầy đủ là DS:BX

MOV [DI],AH ; địa chỉ đầy đủ là DS:DIMOV [SI],AX ; địa chỉ đầy đủ là DS:SI

Trang 15

Toán hạng bộ nhớ gián tiếp

Chế độ địa chỉ cơ sở (Based Relative Addressing Mode)

Các thanh ghi cơ sở BX, BP và cùng với độ dời đư ợc sử dụng để xác định

địa chỉ offset của dữ liệu Độ dời có thể là 1 hằng hay 1 toán hạng bộ nhớ trực tiếp Một toán hạng có thể có nhiều độ dời, các độ dời sẽ đư ợc cộng lại thành 1 độ dời chung xác định

Địa chỉ đoạn ngầm định ứng với BX là DS còn SS là với BP

• VD: MOV CX,[BX]+10 ;chuyển DS:BX+10 vào CX

Lệnh tư ơng đư ơng với

MOV CX, 10[BX]

• VD: MOV AL,[BP]+5 ; chuyển nội dung SS:BP+5 vào AL

Trang 16

Toán hạng bộ nhớ gián tiếp

Chế độ địa chỉ chỉ số (Indexed Relative Addressing Mode )

– Trong chế độ này các thanh ghi chỉ số DI, SI cùng với độ dời xác

định offset của dữ liệu Thanh ghi đoạn ngầm định là DS

• VD: MOV DX,[SI]+5 ; DS:SI+5

MOV CL,[DI]+20; DS:DI+20

Trang 17

Toán hạng bộ nhớ gián tiếp

Chế độ địa chỉ chỉ số cơ sở (Based Indexed Relative

Addressing Mode)

– Tổng hợp cả hai chế độ địa chỉ cơ sở và chỉ số được gọi là chế

độ địa chỉ chỉ số cơ sở, trong đó sử dụng cả thanh ghi cơ sở và thanh ghi chỉ số

MOV CH,[BX][SI]+20;DS:BX+SI+20 MOV AH,[BP][DI]+12;SS:BP+DI+12 MOV AH,[BP][SI]+29 ;SS:BP+SI+29

Trang 18

[tên] tên gợi nhớ [toán hạng] [; chú giải]

• Chỉ dẫn đ ược dùng để định nghĩa tên t ượng trư ng, khai báo dữ liệu và biến, khai báo đoạn ch ương trình con, đánh dấu cuối

đoạn, cuối ch ương trình con hay kết thúc ch ơng trình.

• Toán hạng trong chỉ dẫn phải là một giá trị xác định.

Trang 19

Một số dạng chỉ dẫn th ường dùng

Nhóm định nghĩa tên t ượng tr ưng:

– name EQU <text>; VD: x EQU count

– Name=Expression; VD: dong=10

Nhóm khai báo dữ liệu

– DB,DW,DD: dùng để khai báo dữ liệu dạng Byte, Word và Double Word.

Chỉ dẫn: [name] DB data

– VD: MSGDB 'Hello$‘; Khai báo chuỗi

Nhóm khai báo đoạn

Trang 20

Một số dạng chỉ dẫn th ường dùng (tiếp)

Chỉ dẫn thủ tục PROC và ENDP

– Chỉ dẫn này dùng để khai báo 1 chương trình con.

Dạng: Name PROC [type]

Name ENDP

Chỉ dẫn ASSUME

– Dạng ASSUME seg_reg:seg_name

– Chức năng: ASSUME giúp Assemler trong việc chuyển đổi các biến hay các nhãn trong

ch ơng trình sang các địa chỉ t ơng ứng ASSUME giúp Assemler biết thanh ghi đoạn nào mà ch ơng trình cần dùng để địa chỉ hoá các nhãn và các biến.

– seg_reg là tên các thanh ghi đoạn

– seg_name là tên của các đoạn đã đư ợc khai báo bằng chỉ dẫn SEGMENT.

•  Nhóm chỉ dẫn điều khiển

– Dạng: ORG Expression

– Chỉ dẫn dùng để báo cho Assemler biết các mã lệnh và dữ liệu ngay sau Directive ORG

sẽ đư ợc nạp vào bộ nhớ bắt đầu tại địa chỉ offset đư ợc xác định.

– VD: ORG 100h

Trang 21

d) Tập tin dạng com và exe

– Tệp tin dạng COM đ ược nạp vào bộ nhớ và thực hiện nhanh hơn tệp tin dạng EXE Song tệp tin dạng COM chỉ áp dụng cho các chư ơng trình nhỏ, còn để xây dựng các ch ương trình lớn nhất thiết phải viết d ưới dạng EXE

Trang 22

d) Tập tin dạng com và exe

Trang 23

d) Tập tin dạng com và exe

Tệp tin dạng EXE

– ch ương trình có thể khai báo có nhiều đoạn khác nhau

– Kích thư ớc có thể lớn tuỳ ý phụ thuộc vào kích thư ớc bộ nhớ máy

tính.Đư ợc sử dụng để xây dựng các chư ơng trình lớn hơn 64 KB

Trang 24

d) Tập tin dạng com và exe

Trang 25

2 Tập lệnh vi xử lý 8086

a) Nhóm chuyển dữ liệu: MOV,IN,OUT,PUSH,POP

b) Nhóm logic: NOT,AND,OR ,XOR,TEST

c) Nhóm dịch và quay: SHL,SHR,SAL,SAR,ROL,ROR

d) Nhóm số học: ADD,SUB,ADC,SBB,INC,DEC,MUL,DIV

e) Nhóm chuyển điều khiển: JMP , JA, JB, JC , JE, JG, JO, JS, JP, JZ , LOOP

f) Nhóm chương trình con và ngắt: CALL,RET ,INT,IRET

g) Nhóm xử lý chuỗi: MOVS ,MOVSB,CMPS,SCASB

h) Nhóm điều khiển bộ vi xử lý: NOP,HLT,WAIT

Trang 26

a) Nhúm chuyển dữ liệu

+ Cú pháp MOV dest, source

– Toán hạng nguồn source có thể là reg, mem hay immed

– Toán hạng đích Dest có thể là reg hay mem

+ Chức năng: Chuyển nội dung toán hạng nguồn vào toán hạng đích Chiều dài của dữ liệu có thể

là 8 bit hay 16 bit.

VD: MOV DI, BX

MOV BL, CL

+ Chú ý:

– Không thể chuyển trực tiếp giữa 2 thanh ghi đoạn.

– Không thể dùng thanh ghi đoạn CS làm toán hạng đích trong lệnh MOV

– Lệnh MOV không làm ảnh h ưởng thanh ghi cờ hiệu.

+ VD : Viết chư ơng trình chuyển nội dung vùng nhớ 6 byte bắt đầu từ địa chỉ 300h sang 400 h Giải:

mov si,300h ; offset bắt đầu vùng dữ liệu nguồn

mov di,400h; offset bắt đầu vùng dữ liệu đích

mov ax,[si] ; chuyển 2 byte đầu

Trang 27

a) Nhúm chuyển dữ liệu

+ Cú pháp: PUSH source (reg16 hoặc mem16)

PUSH immed16 (chỉ dùng với CPU 80286/386/486) + Chức năng: Dùng để cất một trực hằng, nội dung 1 thanh ghi 16 bit hay nội dung toán hạng bộ nhớ 16 bit vào STACK (Ngăn xếp).

+ Hoạt động: Lệnh PUSH giảm thanh ghi SP 2 đơn vị và chuyển nội dung 16 bit của toán hạng nguồn vào trên đỉnh của STACK Đỉnh STACK đ ược xác định bởi cặp thanh ghi

SS:SP

+ VD: PUSH BX

PUSH ES

Trang 28

a) Nhúm chuyển dữ liệu

+ Cú pháp: POP Dest (reg16 hoặc mem16)

+ Chức năng: POP dùng để lấy dữ liệu đang hiện hành trên đỉnh của STACK (đư ợc xác định bởi cặp thanh ghi SS:SP) vào toán hạng Dest.

+ Hoạt động: Lệnh POP tăng thanh ghi 2 đơn vị để chỉ đến đỉnh mới của STACK.

VD: POP SI

POP CX

POP ES

Trang 29

a) Nhúm chuyển dữ liệu

+ Cú pháp: IN AL, port8

IN AL, DX + Chức năng: Đọc một l ượng 8 bit từ một cổng nhập vào thanh ghi AL Nếu

địa chỉ của cổng có giá trị trong khoảng từ 0 đến FF thì địa chỉ có thể viết trực tiếp trong câu lệnh Còn nếu địa chỉ của cổng có giá trị lớn hơn FF thì cần dùng thanh ghi DX để định địa chỉ cổng.

+ VD1: IN AL, 61h ; đọc một byte từ cổng 61h

+ VD2: MOV DX, 03f8h ; đọc một byte từ cổng 03f8h.

IN AL,DX

Trang 30

a) Nhúm chuyển dữ liệu

Lệnh OUT

+ Cú pháp: OUT port8, AL

OUTDX, AL+ Chức năng: Gửi một l ượng 8 bit từ thanh ghi AL ra cổng xuất Nếu địa chỉ của cổng có giá trị trong khoảng từ 0 tới FF thì địa chỉ đó có thể viết trực tiếp trong câu lệnh Còn nếu địa chỉ của cổng lớn hơn 8 bit thì cần dùng thanh ghi DX để

định địa chỉ của cổng

+ VD1: OUT61h, AL

+ VD2: MOV DX, 03f8 ; địa chỉ cổng màn hình đơn sắc.

OUTDX, AL

Trang 31

b) Nhúm logic

Lệnh AND

+ Cú pháp: AND dest, source

– Source: có thể là thanh ghi, bộ nhớ hay trực hằng

– Dest: có thể thanh ghi hay bộ nhớ

+ Chức năng: lấy nội dung của toán hạng source, thực hiện phép toán logic AND từng bit với nội dung của toán hạng đích, kết quả l ưu vào toán hạng đích

(dest) < - (dest) AND (source)

+ Chỳ ý: - Lệnh này ảnh h ưởng đến các cờ CF, OF, PF, SF, ZF, không ảnh hư ởng cờ

AF (CF < - 0, OF < -0)

- Lệnh này th ường dùng để xoá một bit nào đó, ví dụ muốn xoá 2 bít cao của thanh ghi AL, ta chỉ cần thực hiện

ANDAL,00111111B

Trang 32

b) Nhúm logic

Lệnh OR

+ Cú pháp: OR dest, source

– Source: có thể là thanh ghi, bộ nhớ hay trực hằng

– Dest: có thể thanh ghi hay bộ nhớ

+ Chức năng: lấy nội dung của toán hạng source, thực hiện phép toán logic OR từng bit với nội dung của toán hạng đích, kết quả l ưu vào toán hạng đích

(dest) < - (dest) OR (source)

+ Chỳ ý: - Lệnh này ảnh h ưởng đến các cờ CF, OF, PF, SF, ZF, không ảnh hư ởng cờ

AF (CF < - 0, OF < -0)

- Lệnh này ngư ợc với lệnh AND, dùng để bật một bit nào đó lên 1, ví dụ muốn bật 2 bit cao của thanh ghi AH lên 1, ta chỉ cần thực hiện

OR AL, 11000000B

Trang 33

b) Nhúm logic

Lệnh XOR

+ Cú pháp: XOR dest, source

– Source: có thể là thanh ghi, bộ nhớ hay trực hằng

– Dest: có thể thanh ghi hay bộ nhớ

+ Chức năng: (dest) < - (dest) XOR (source)

+ Chỳ ý: - Lệnh này ảnh h ưởng đến các cờ CF, OF, PF, SF, ZF, không ảnh hư ởng cờ AF

- Lệnh này thư ờng dùng để xác định những bit nào khác nhau giữa 2 toán hạng, hoặc muốn đảo ng ược một số bit nào đó

+ Ví dụ: Viết ch ươgn trình đếm số bit khác nhau giữa 2 thanh ghi AL và AH

Trang 34

b) Nhúm logic

Lệnh NOT

+ Cú pháp: NOT Dest (reg / mem)

+ Chức năng: Đảo ngư ợc từng bit của nội dung toán hạng dest, lệnh NOT hoàn toàn không ảnh h ưởng đến các cờ

+ Ví dụ: mov al,0

not al; cho kết quả al = ffH

Trang 37

- Lệnh ROL dest, CL dùng cho trư ờng hợp ROL nhiều hơn một bit.

- Lệnh ROL chỉ ảnh hư ởng đến các cờ CF và OF.

Trang 38

c) Nhúm dịch và quay

Lệnh ROR (rotate right):

+ Cỳ phỏp: RORdest, 1

hay RORdest, CL

+ Chức năng: Giống như lệnh ROL, thay vì quay bit sang trái, ta quay bit sang phải

- Lệnh ROR dest, 1: quay nội dung của toán hạng dest sang phải một bit Giống nh lệnh SHR, như

ng thay vì bit cuối là 0 thì đối với lệnh ROR bit đầu đ ược dịch chuyển vào bit cuối.

- Lệnh ROR dest, CL dùng cho trư ờng hợp ROR nhiều hơn một bit.

- Lệnh ROR chỉ ảnh hư ởng đến các cờ CF và OF.

Trang 39

d) Nhúm số học

Lệnh ADD (adition):

+ Cỳ phỏp: ADD dest, source

– Toán hạng nguồn Source có thể là Reg, Mem hay Immed.

– Toán hạng đích Dest chỉ có thể là Reg hoặc Mem.

+ Chức năng: Lệnh ADD cộng không nhớ nội dung của toán hạng source với toán hạng dest rồi gửi kết quả vào toán hạng dest

(dest ) + (source) → (dest)

Lệnh ADC (ADD with carry):

+ Cỳ phỏp: ADC dest, source

+ Chức năng: Lệnh ADC cộng có nhớ nội dung của toán hạng source và toán hạng dest rồi cộng thêm 1 nếu cờ CF có giá trị 1, kết quả l u vào toán hạng dest Nh vậy lệnh ADC giống nh lệnh ADD, nh ng thực hiện phép cộng có nhớ

(dest ) + (source) + CF → (dest)

Lệnh INC (Increment)

+ Cỳ phỏp: Inc dest (Reg/Mem)

+ Chức năng: Tăng nội dung toán hạng dest lên 1

(dest ) + 1 → (dest)

+ Ví dụ: INC CX;

Trang 40

d) Nhóm số học

LÖnh SUB:

+ Cú pháp: SUB dest, source

+ Chøc n¨ng: Thùc hiÖn phÐp trõ kh«ng nhí LÖnh SUB lÊy néi dung to¸n h¹ng Dest trõ néi dung to¸n h¹ng Source, kÕt qu¶ l u vµo trong to¸n h¹ng dest.

(dest ) - (source) → (dest)

+ Cú pháp: DEC dest (Reg/Mem)

+ Chøc n¨ng: Giảm néi dung to¸n h¹ng dest lªn 1

(dest ) - 1 → (dest)

+ VÝ dô: DEC CX;

Trang 41

VD: MUL BX; DX:AX ← AX*BX

+ Chú ý: Lệnh này chỉ ảnh hư ởng đến cờ CF, OF

– Các cờ CF và OF nhận giá trị 1 nếu phần cao của kết quả khác không, ng ược lại cờ CF và

OF bằng 0 nếy phần cao của kết quả bằng 0.

Trang 42

d) Nhóm số học

LÖnh DIV:

+ Cú pháp: DIV source (thanh ghi hay bé nhí)

+ Chøc n¨ng: thùc hiÖn phÐp chia sè kh«ng dÊu, lÊy néi dung cña thanh ghi tÝch luü AX chia cho to¸n h¹ng source.

– NÕu source lµ to¸n h¹ng d¹ng byte th× lÖnh DIV lÊy néi dung cña thanh ghi tÝch luü AX chia cho to¸n h¹ng source, th ư¬ng sè vµ sè dư cña phÐp chia tư¬ng øng ®ư îc lư u trong thanh ghi AL vµ thanh ghi AH.

VD: DIV BL; AX DIV BL > AL (Lưu thương số), AX MOD BL > AH (Lưu số dư)

– NÕu source lµ to¸n h¹ng d¹ng word th× lÖnh DIV lÊy néi dung cña thanh ghi tÝch luü më réng DX:AX chia cho to¸n h¹ng source, th ư¬ng sè ® ưîc lư u trong thanh ghi tÝch luü AX, vµ sè dư cña phÐp chia được lưu trong thanh ghi tÝch luü mở réng DX.

VD: DIV BX; DX:AX DIV BX >AX, DX:AX MOD BX >DX

Trang 43

e) Nhúm chuyển điều khiển

Lệnh nhảy không điều kiện

JMP Label

JMP Target (reg/mem)

+ ý nghĩa: dùng để chuyển điều khiển chư ơng trình từ vị trí này sang vị trí

khác JMP thực hiện bằng cách thay đổi nội dung thanh ghi CS:IP để con trỏ lệnh chỉ đến vị trí mới

– Lệnh JMP có thể là short, near hay far Với dạng short hay near lệnh JMP chỉ thay đổi nội dung của thanh ghi con trỏ lệnh IP Còn với dạng far, lệnh JMP thay đổi cả thanh ghi đoạn

CS lẫn thanh ghi IP.

VD về lệnh JMP Label: Viết chư ơng trình khởi động lại máy tính mà không cần ấn nút

RESET, biết đoạn ch ơng trình khởi động máy tính trong ROM BIOS bắt đầu tại địa chỉ F000:E05B.

Trang 44

e) Nhúm chuyển điều khiển

J condition short_label

– Lệnh nhảy có điều kiện tr ước tiên kiểm tra điều kiện, sau đó nhảy đến

vị trí đư ợc chỉ bởi nhãn short_label nếu điều kiện đ ược thoả mãn, hoặc tiếp tục thực hiện lệnh kế tiếp nếu điều kiện không thoả mãn

– Mỗi lệnh nhảy chiếm 2 byte trong bộ nhớ Byte đầu tiên là mã lệnh Byte thứ hai là khoảng cách tương đối từ lệnh đến Label, do đó nhãn short_label trong lệnh nhảy có điều kiện phải nằm trong khoảng -128 đến +127

Muốn nhảy xa hơn phải sử dụng lệnh nhảy không điều kiện

– Một số lệnh thường dựng:

• JC (Jump if carry) >< JNC (Jump if not carry)

• JZ (Jump if zero) >< JNZ (Jump if not zero)

• JE (Jump if equal) >< JNE (Jump if not equal)

• JC (Jump if carry) >< JNC (Jump if not carry)

Ngày đăng: 22/03/2021, 17:02

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w