How to enter in a record the address of a variable in assembler

0

Hi, I have a code in assembler and I can not enter the SI register, the address that points to variable INFO this is the code:

SZ = 2
DSEG SEGMENT
    INFO DB 0CBH,0D3H
    RESULT DB ?
    OFFSETS DW  2 DUP (?)
DSEG ENDS   
sseg segment stack
    db 100h dup(?)
sseg ends 
cseg segment
assume ds:dseg, ss:sseg, cs:cseg
main:
MOV AX,DSEG
MOV DS,AX

MOV SI,OFFSET INFO
MOV BX,OFFSET OFFSETS
MOV DI , SI
ADD DI , 3
MOV CX , SZ
REPEAT:
    CALL POLI
    INC SI
    DEC DI
    LOOP REPEAT

POLI :
    MOV AL , [SI]
    MOV AH , [DI]
    CMP AL , AH
    JB COM

    ROR AH , 1
    CMP AH , AL
    JE RE1
    MOV RESULT , 0
    JMP SOF
COM:
    ROR AL , 1
    CMP AL , AH
    JE RE2
    MOV RESULT , 0
    JMP SOF

RE1:
    MOV OFFSETS [BX] , AX
    INC BX
    JMP SOF
RE2:
    MOV DH , AL
    MOV DL , AH
    MOV OFFSETS [BX], DX
    INC BX
SOF:
    RET


ret

int 21h
cseg ends
end main
    
asked by Julio Mizrahi 09.07.2018 в 16:35
source

0 answers