Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:assem / задачи на экзамен / 7
.txt 7. Задан байтовый массив из N элементов. Написать процедуру сжатия (удаления нулей) в этом массиве.
model small
data_sg segment
a db 1,0,2,0,3,0,4
n=$-a
.stack 100h
data_sg ends
code_sg segment
assume cs:code_sg, ds:data_sg
gulko proc
mov bx,n
xor si,si
m4:
mov al,a[si]
cmp al,0
jne m1
mov di,si
mov dx,bx
dec dx
cmp di,dx
je m2
m3:
mov cl,a[di+1]
mov a[di],cl
inc di
cmp di,dx
jl m3
xor si,si
jmp m5
m2:
dec bx
m1:
inc si
m5:
cmp si,bx
jl m4
ret
gulko endp
start:
mov ax,data_sg
mov ds,ax
call sergey
mov ax,4c00h
int 21h
ret
code_sg ends
end start
model small
data_sg segment
a db 1,0,2,0,3,0,4
n=$-a
.stack 100h
data_sg ends
code_sg segment
assume cs:code_sg, ds:data_sg
gulko proc
mov bx,n
xor si,si
m4:
mov al,a[si]
cmp al,0
jne m1
mov di,si
mov dx,bx
dec dx
cmp di,dx
je m2
m3:
mov cl,a[di+1]
mov a[di],cl
inc di
cmp di,dx
jl m3
xor si,si
jmp m5
m2:
dec bx
m1:
inc si
m5:
cmp si,bx
jl m4
ret
gulko endp
start:
mov ax,data_sg
mov ds,ax
call sergey
mov ax,4c00h
int 21h
ret
code_sg ends
end start