Chê đoơ địa chư gián tiêp baỉng thanh gh

Một phần của tài liệu giáo trình hợp ngữ nâng cao (Trang 79 - 81)

DIV BX OVERFLOW

Toán tử giạ INCLUDE

7.2.1 Chê đoơ địa chư gián tiêp baỉng thanh gh

Trongchêđoơđịachưgiántiêpbaỉngthanhghi,địachưoffsetcụatoánháng đượcchưátrong1thanhghi.Chúngtanóiraỉngthanhghilàcontrỏ(pointer)cụavị trí nhớ.Dángtoánhánglà[register].TrongđóregisterlàcácthanhghiBX,SI,DI ,BP.ĐôivớicácthanhghiBX,SI,DIthìthanhghi đốnlàDS.Cònthanhghi đốncụaBPlàSS.

Vídú:giạsửraỉngSI=100hvàtừnhớtáiđịachưDS:0100h cónoơidunglà 1234h.Leơnh MOV AX,[SI] sẽ copy1234h vàoAX.

Giạsửraỉngnoơidungcácthanhghivànoơidungcụaboơnhớtươngứng lànhư sau:

Ví dú 1:

Hãychobiêtleơnhnàosauđađylàhợplý,offsetnguoănvàkêtqụacụacác leơnhhợplý. a. MOV BX,[BX] b. MOV CX,[SI] c. MOV BX,[AX] d. ADD [SI],[DI] e. INC [DI]

Chương 7: Mạng và các chê đoơ địa chư 83 Lời

giại :

a. 1000h 1BACh

b. 2000h 20FFh

c. illegalsourceregister (mustbeBX,SI,DI) d. illegalmemory-memoryadd

e. 3000h 031Eh

dú 2 : Viêtđốn mã đeơcoơngvàoAX 10phaăntử cụamoơtmạngW định nghĩanhưsau:

W DW 10,20,30,40,50,60,70,80,90,100Giại: Giại:

XOR AX,AX ;xoá AX

LEA SI,W ;SItrỏtới địachưcơsở(base)cụamạmgW. MOV CX,10 ;CXchưásôphaăntửcụamạng

ADDITION:

ADD AX,[SI] ;AX=AX+phaăntửthứnhât ADD SI,2 ;taíngcontrỏleđn2

LOOP ADDITION ;laịp Ví

dú 3: Viêt thụtúcđeơđạongượcmoơtmạngntừ.Đieăunàycónghĩa làphaăntửthứnhâtsẽđoơithànhphaăntửthứn,phaăntửthứhaisẽthànhphaăntửthứ n-1... ChúngtasẽdùngSInhư làcontrỏ cụamạngcònBXchứasôphaăntửcụa mạng(ntừ).

Giại:Sôlaăn traođoơilàN/2laăn.Nhớ raỉngphaăntửthứNcụamạngcóđịa chưA+2x(N-1)

Đốnmãnhưsau: REVERSE PROC ;input:SI=offsetofarray ; BX=numberofelements ;output:reversearray

PUSH AX ;câtcácthanhghi PUSH BX

PUSH CX PUSH SI PUSH DI ;DIchưtớiphaăntửthứn

Chương 7: Mạng và các chê đoơ địa chư 84 MOV DI,SI ;DItrỏtớitừ thứnhât

MOV CX,BX ;CX=BX=n:sôphaăntử DEC BX ;BX=n-1

SHL BX,1 ;BX=2x(n-1)

ADD DI,BX ;DI=2x(n-1)+offsetcụamạng:chưtớiphaăntử ;thứn

;traođoơicácphaăntử XCHG_LOOP:

MOV AX,[SI] ;lây1phaăntửởnửathâpcụamạng XCHG AX,[DI] ;đưanóleđnnửacaocụamạng MOV [SI],AX ;hoànthànhtraođoơi

ADD SI,2 ;SIchưtới phaăntửtiêp theocụamạng SUB DI,2 ;DIchưtớiphaăntửthứn-1

LOOP XCHG_LOOP POP DI POP SI POP CX POP BX POP AX RET REVERSE ENDP

Một phần của tài liệu giáo trình hợp ngữ nâng cao (Trang 79 - 81)

Tải bản đầy đủ (DOCX)

(95 trang)
w