Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > работа с графом


Автор: DrWeb 13.1.2009, 21:02
Вот код программы, в котором я удаляю вершину из графа. правильная она али нет?
Код

;удаление вершины
.model small
.stack 256
.data 
 n dw 4
 m dw ?
 mas db 0,1,1,0
     db 0,0,1,1
     db 1,1,0,0
     db 0,1,1,0
 ms = $ - mas
 _mas db ms dup (0ffh)
 tmp db 0
 ver dw 1 ; удаляемая вершина
.code
main:
    mov ax,@data
    mov ds,ax
    xor ax,ax
    mov ax,0002h
    int 10h
    mov cx,n
    xor si,si ;i=0
    mov ax,n
    sub ax,1
    mov m,ax
    xor ax,ax
    c1: rel1:
        push cx
        mov cx,n
        cmp si,ver
        je go1
        xor di,di ;j=0
        c2: rel2:            
            cmp di,ver
            je go2
            mov ax,n
            mul si
            add ax,di 
            mov bx,ax ; i*n+j
            mov al,mas[bx]
            mov tmp,al
            
            mov ax,m
            mul si
            add ax,di ; i*m+j
            mov bx,ax            
            mov al,tmp
            mov _mas[bx],al
            go2:
            inc di            
            loop c2
        go1:
        inc si
        pop cx
        loop c1
        jmp exit
         
  exit:
    mov ax,4c00h
    int 21h
end main

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)