Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.04.2009, 19:38   #1
iwaniwan
Пользователь
 
Регистрация: 14.04.2009
Сообщений: 19
По умолчанию помогите разобраться в программе



Работает не совсем корректно, кажись проблема в условии но не могу найти где имено

Код:
masm          
model small   
.stack 100h        
.data         
x db 0        
a db 0        
y1 db 0  
y2 db 0       
y db 0             
message1  db 13,10," x: $"
message2  db 13,10," a: $"
message3  db 13,10,"  Y: $"
flag db 0           
.code               
start:              
    mov ax,@data      
    mov ds,ax         
                      
    mov   ah,9h      
    lea   dx,message1                                 
    int   21h                                                    
    mov   ah,1          
    int   21h          
    cmp   al,'-'      
    jne   AfterPress   
    mov   flag,1       
 input:                              
    mov   ah,1                                                
    int   21h        
   AfterPress:         
    cmp   al,13       
    je    endInput    
    sub   al,30h      
    mov   bl,al       
    mov   bh,10       
    mov   al,x        
    xor   ah,ah       
    mul   bh          
    add   al,bl       
    mov   x,al        
    loop  input                                                 
 endInput:                                                      
    cmp   flag,1      
    jne   BeforeInput2 
    neg   x                       
  BeforeInput2:        
    mov   flag,0      
    mov   ah,9h       
    lea   dx,message2  
    int   21h                                                      
    mov   ah,1         
    int   21h          
    cmp   al,'-'     
    jne   AfterPress2  
    mov   flag,1       
 input2:                              
    mov   ah,1                                                
    int   21h        
   AfterPress2:        
    cmp   al,13       
    je    endInput2   
    sub   al,30h       
    mov   bl,al        
    mov   bh,10        
    mov   al,a         
    xor   ah,ah        
    mul   bh         
    add   al,bl       
    mov   a,al         
    loop  input2                                                 
 endInput2:                                                      
    cmp   flag,1     
    jne   EndInputXA   
    neg   a                      
 EndInputXA:           
    mov   al,x         
    cmp   al,0         
    jge   NXneg        
    neg   al           
  NXneg:   
    mov   al,x   
    mov   bl,a         
    cmp   al,bl        
    jg    Xla    
    mov   al,x
    mov   bl,8
    add   al,bl       
    mov   y1,al      
    jmp   calcY2                  
  Xla:               
    mov   al,a
    mov   bl,2
    mul   bl                                      
    mov   y1,al       
  calcY2:                         
    xor   ax,ax                          
    mov   al,x                                                       
    cmp   al,4       
    jle   Xl3       
    mov   al,3          
    mov   y2,al       
    jmp   calcY                   
  Xl3:                            
    mov   al,a        
    mov   bl,1
    add   al,bl
    mov   y2,al       
  calcY:            
    mov   al,y1                                    
    add   al,y2     
    mov   y,al                                                 
  OutY:                                  
   mov   ah,9h        
   lea   dx,message3                               
   int   21h                                       
   cmp   y,0                      
   jge   Yge0             
   mov   al,'-'            
   int   29h                               
   neg   y                 
  Yge0:                            
   mov   ah,0                      
   mov   al,y                      
   mov   bl,100                    
   div   bl         
   push  ax                        
   add   al,'0'                    
   cmp   al,'0'                    
   jna   outAllY                   
   int   29h                     
  outAllY:                         
   mov   al,ah       
   aam               
   add   ax,'00'   *
   mov   dx,ax       
   push  dx           
   mov   al,dh      
   int   29h          
   pop   dx           
   mov   al,dl     
   int   29h               
   mov   ah,10h      
   int   16h                                               
   mov   ax,4c00h           
   int   21h                                    
end start

Последний раз редактировалось iwaniwan; 15.04.2009 в 19:46.
iwaniwan вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться в программе Gekada Общие вопросы C/C++ 1 09.12.2008 19:23
ПОМОГИТЕ исправить ошибку в программе SYL@R Помощь студентам 1 07.12.2008 19:42
ПОМОГИТЕ исправить ошибку в программе SYL@R Помощь студентам 1 21.11.2008 14:48
Помогите найти ошибку в программе KnDmPetr Паскаль, Turbo Pascal, PascalABC.NET 5 10.03.2008 14:19