king-gideon
April 3rd, 2009, 03:21 AM
i need to replace all the negative elements in an array with zero.i tried writing this and i got stuck:( i urgently need help
.model small
.stack 100h
.data
DEC_SIZE EQU 5
RES DB DEC_SIZE DUP('0')
TEMP DW ?
array dw 1,2,3,-5,6,-6
.code
.startup
mov cx,6
mov bx,array
cmp [bx],0
jnb Mark
mov [bx],0
Mark:
add bx,2
cmp [bx],0
jnb 0mark
cmp[bx],0
0mark: LOOP Mark
mov bx,array
MOV AX,[bx]
MOV CX,10
MOV RES+DEC_SIZE,'$'
MOV BX,OFFSET RES+DEC_SIZE
CYCLE: DEC BX
XOR DX,DX
DIV CX
ADD DL,'0'
MOV [BX],DL
CMP BX,OFFSET RES
JNE CYCLE
MOV AH,09
LEA DX,RES
INT 21H
mov cx,6
ft: mov cx,TEMP
MOV AX,[bx]
MOV CX,10
MOV RES+DEC_SIZE,'$'
MOV BX,OFFSET RES+DEC_SIZE
CYCLE: DEC BX
XOR DX,DX
DIV CX
ADD DL,'0'
MOV [BX],DL
CMP BX,OFFSET RES
JNE CYCLE
MOV AH,09
LEA DX,RES
INT 21H
mov cx,temp
loop ft
ret
End Startup
.model small
.stack 100h
.data
DEC_SIZE EQU 5
RES DB DEC_SIZE DUP('0')
TEMP DW ?
array dw 1,2,3,-5,6,-6
.code
.startup
mov cx,6
mov bx,array
cmp [bx],0
jnb Mark
mov [bx],0
Mark:
add bx,2
cmp [bx],0
jnb 0mark
cmp[bx],0
0mark: LOOP Mark
mov bx,array
MOV AX,[bx]
MOV CX,10
MOV RES+DEC_SIZE,'$'
MOV BX,OFFSET RES+DEC_SIZE
CYCLE: DEC BX
XOR DX,DX
DIV CX
ADD DL,'0'
MOV [BX],DL
CMP BX,OFFSET RES
JNE CYCLE
MOV AH,09
LEA DX,RES
INT 21H
mov cx,6
ft: mov cx,TEMP
MOV AX,[bx]
MOV CX,10
MOV RES+DEC_SIZE,'$'
MOV BX,OFFSET RES+DEC_SIZE
CYCLE: DEC BX
XOR DX,DX
DIV CX
ADD DL,'0'
MOV [BX],DL
CMP BX,OFFSET RES
JNE CYCLE
MOV AH,09
LEA DX,RES
INT 21H
mov cx,temp
loop ft
ret
End Startup