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


Автор: scrapydoo 22.12.2010, 23:49
Вот код:
model small
include io.asm
.386
.data
.stack 100h
.code
start:
z dw a,b
a dd ?
b dd ?
priglash db 'a-> ','$'
rez db 'Результат подсчета -> ','$'
flag db 0 
cmp a,'b'
je m1
m1: mov ax,1
    imul a
    div b
    xchg ax,bx
    mov bx,4
    sub ax,bx
cmp a,'b'
jg m2
m2: mov ax,1
    sub ax,56
cmp a,'b'
jl m3
m3: mov ax,1
    imul b
    sub ax,5
    mov bx,1
    imul a
    xchg ax,bx
    div bx
end start
.exe файл компилирует, но вычисления не делает

Автор: Игорь1024 23.12.2010, 12:22
А где ты вводишь значение? У тебя только функции вычислений есть. Даже просто задай a и проверь результат.

Автор: scrapydoo 23.12.2010, 20:34
Подредактировал немножко...теперь .exe файл видает результат но всегда одинаковое число((
model small
include io.asm 
.stack 100h
.data 
a db 28
b db 20
c dw ?, ? ; для результату
priglash db 'Vveddite simvoll-> ','$'
rez db 'Rezultat podsceta -> ','$'
flag db 0 ;початкове значення прапора
.code 
start:                    
        mov ax, @data            
    mov ds, ax
    mov dx, offset priglash        
    mov ah, 9h    
    int 21h
    mov ah, 1h                
    int 21h                
    cmp a,'b'                
    jb  m1          
m1:
    mov flag, 1            
    mov al, b            
        sub al, 5                
    mov bl, al            
    mov al, a                            
    mov dl, 0        
    div bl            
    jmp vivod
      cmp a,'b'
      je m2
m2:
      mov al,0
      sub al,55
      cmp a,'b'
      jg m3
m3:
      mov al,b   
      mov bl,a
      xchg al,bl
      div bl
      sub al,4
      jmp vivod

menshe: mov c, 55        
vivod: mov dl, offset rez    ;
    mov ah, 9h    
int 21h
    outint c             
    cmp flag, 0            
    je  finish
    mov dl, 9            
    mov ah, 2h    
int 21h
    outint c+2            
finish: mov ah, 1             
    int 21h
mov ax, 4C00h            
    int 21h
end start

Автор: Игорь1024 24.12.2010, 09:47
Код

cmp a,'b'

нужно
Код

cmp al,'b'

Вообще вот полезный ресурс. Сам часто пользуюсь http://www.codenet.ru/progr/dos/
И пользуйтесь тегом кода!

Автор: scrapydoo 24.12.2010, 19:18
Спасибо за помощь! Я решыл убрать переменные и заменить на регистры, тепер уже работает smile 

Автор: Игорь1024 25.12.2010, 15:59
Внимательней надо. Ошибки то элементарные.

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