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


Автор: Sweeney 3.12.2007, 00:07
Есть работающая программа. Если вставить дополнительную процедуру по очистке экрана(но не вызывать ее!!!), то программа глючит! В чем дело???

Автор: MAKCim 3.12.2007, 00:15
Sweeney, 
Чтатайте внимательно правила форума
особенно п. 3

Автор: Sweeney 3.12.2007, 00:31
Программа выглядит следующим образом:

data segment 'data'

String1 db 'First Parameter - $'
           
String2 db 'Second Parameter - $'
            
String3 db 'Third Parameter - $'
 Number = 1
i db 1
                                    
                                    
data ends
                                  
code segment 'code'
assume cs:code,ds:data
                                      
;!!!!!!!!!!!!!!!!!!!!!!!! Если сюда вставить следующую процедуру(закомментирована), то ничего не работает.

;---------------------------------------
;ClearScreen proc
;    mov ax,0600h
;    mov bh,71h
;    mov cx,0000h
;    mov dx,184fh
;    int 10h
;    ret 
;---------------------------------------

 CountDown proc
dec cx
 inc bx
mov dl,0ah
int 21h
ret
                                     
ShowParameter proc
                                     
cycl:
                                  
    mov dl,es:82h+bx
    cmp dl,20h
    je CountDown
    mov ah,2
    int 21h
    inc bx
                                    
    loop cycl
                                      
    mov ah,1
    int 21h
    ret
                                      
 ShowFirstParameter proc
                                       
lea dx,String1
 mov ah,9
int 21h
                                     
call ShowParameter
 ret
                                      
ShowSecondParameter proc
                                      
lea dx,String2
mov ah,9
int 21h
                                     
call ShowParameter
  ret
                                     
endm
                                     
ShowThirdParameter proc
                                     
    lea dx,String3
    mov ah,9
    int 21h
                                    
    call ShowParameter
    ret
    
                                      

        
    
    
    

start:
                                      
mov ax,data
mov ds,ax
                                      
mov cl,es:80h
mov bx,0h
                                     
ShowNextParameter:
                                      
call ShowFirstParameter
call ShowSecondParameter
call ShowThirdParameter 

mov cl,es:80h
mov bx,0h      


                                    
                                      
                                      
                                      
code ends
end start

Автор: dumb 3.12.2007, 02:27
Sweeney, при вставке исходного текста пользуйся кнопкой "Код".

Цитата(Sweeney @  3.12.2007,  00:31 Найти цитируемый пост)
Если сюда вставить следующую процедуру(закомментирована), то ничего не работает.
оно и без вставки этой процедуры не работает. мешанина...

ничего не менял(пардон, smile), только подправил чутка:
Код

data segment 'data'

String1 db 'First Parameter - $'

String2 db 'Second Parameter - $'

String3 db 'Third Parameter - $'
 Number = 1
i db 1

data ends

code segment 'code'
assume cs:code,ds:data

ClearScreen proc
    mov ax,0600h
    mov bh,71h
    mov cx,0000h
    mov dx,184fh
    int 10h
    mov ah,2
    xor dx,dx
    xor bx,bx
    int 10h
    ret 
ClearScreen endp

ShowParameter proc
cycl:
    mov dl,es:82h+bx
    cmp dl,20h
    je CountDown
    mov ah,2
    int 21h
    inc bx
    loop cycl

    mov ah,1
    int 21h
    ret
CountDown:
    dec cx
    inc bx
    mov dl,0ah
    int 21h
    ret
ShowParameter endp
    
ShowFirstParameter proc
    lea dx,String1
    mov ah,9
    int 21h
    call ShowParameter
    ret
ShowFirstParameter endp

ShowSecondParameter proc
    lea dx,String2
    mov ah,9
    int 21h
    call ShowParameter
    ret
ShowSecondParameter endp

ShowThirdParameter proc
    lea dx,String3
    mov ah,9
    int 21h
    call ShowParameter
    ret
ShowThirdParameter endp

start:
    mov ax,data
    mov ds,ax
    call ClearScreen
    mov cl,es:80h
    mov bx,0h
    call ShowFirstParameter
    call ShowSecondParameter
    call ShowThirdParameter 
    mov ax,4c00h
    int 21h
code ends

end start

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