Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Не работает программа (типы)  (Прочитано 20090 раз)
0 Пользователей и 1 Гость смотрят эту тему.
203
Интересующийся

by
Offline Offline

« : 29-05-2013 20:03 » 

Здравствуйте. Помогите пожалуйста исправить ошибку. Задача стаяла такая: 1) есть формула ;y/96+x*16 подставить в место x и y числа и выдать ответ. 2) используя для x - un. char – 8 битн. без знака; для y - un. int – 16 битн. без знака. Вот то что получилось.
Код: (ASM)
  1. ;y/96+x*16
  2. model   small
  3. .stack  100h
  4. .data
  5. x db 6
  6. y dw 96
  7. F dw ?
  8. strChet db 'Chetnoe$'
  9. strNeChet db 13, 10, 'Ne chetnoe$'
  10. .code
  11. start:
  12.         mov ax,@data
  13.         mov ds, ax
  14.         xor dx, dx
  15.         mov ax, y
  16.         mov bx, 96
  17.         div bx
  18.        
  19.         mov bx, x
  20.         shl bx,4
  21.         add ax,bx
  22.        
  23.         mov F, ax
  24.         mov bx, 1000h
  25.         mov [bx], ax
  26.      
  27.         test ax, 1
  28.         jz g1
  29.         mov     ah,09h
  30.                
  31.                 mov     dx,offset strNeChet
  32.                 int     21h
  33.                 jmp exit2
  34.        
  35.     g1:    
  36.                 mov     ah,09h
  37.                 mov     dx,offset strChet
  38.                 int     21h
  39.          
  40.  exit2:  
  41.  
  42.                 mov     ax,4c00h
  43.                 int     21h
  44.        
  45. end start
Помогите пожалуйста. Заранее спасибо.
« Последнее редактирование: 29-05-2013 20:59 от Джон » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 29-05-2013 20:32 » 

203, выдать какой ответ? И что это за "трава" c bx после строчки с переменной F?

Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
203
Интересующийся

by
Offline Offline

« Ответ #2 : 29-05-2013 20:39 » 

А какая трава там должна быть?

Добавлено через 36 секунд:
И проблема у меня не в этой траве.
« Последнее редактирование: 29-05-2013 20:40 от 203 » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 29-05-2013 20:50 » 

xor dx, dx - зачем? (ну.... не существенно)

Трава? где-то здесь То что написано - "преждевременная оптимизация"
mov bx, x
shl bx,4

А может здесь?
mov bx, 1000h зачем?
И что такое 1000h



Добавлено через 4 минуты и 59 секунд:
Код:
        test ax, 1
        jz g1
        mov     ah,09h
               
                mov     dx,offset strNeChet
                int     21h
                jmp exit2
       
    g1:   
                mov     ah,09h
                mov     dx,offset strChet
                int     21h
Это похоже на говонокод

Как по мне так красивее
Код:
        test ax, 1
        jz g1
                mov     dx,offset strNeChet
                jmp out

g1:                mov     dx,offset strChet

out:        mov     ah,09h
                int     21h
       
Надеюсь понятно почему?

« Последнее редактирование: 29-05-2013 20:55 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
203
Интересующийся

by
Offline Offline

« Ответ #4 : 29-05-2013 22:14 » 

А понял только 1 то что это говнокод, но ошибку мою исправить и не помогли.

Добавлено через 1 минуту и 29 секунд:
Программа та не компилируется.
« Последнее редактирование: 29-05-2013 22:16 от 203 » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 29-05-2013 22:52 » 

203, а ты уверен, что это твоя ошибка? Вообще впечатление, что код не твой.

И компилятор всегда говорит, что за ошибка и в какой строчке. Например, model без точки написано.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
203
Интересующийся

by
Offline Offline

« Ответ #6 : 30-05-2013 10:28 » 

Разобрался всем спасибо.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 30-05-2013 10:44 » new

И шо воно було?

А что там про траву? Как дела с травой обстоят?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines