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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2014, 00:42   #1
carrie bradshaw
Форумчанин
 
Регистрация: 25.01.2014
Сообщений: 105
По умолчанию ошибка в программе Assembler

Доброй ночи, всем активным участникам этого замечательного форума. помогите, пожалуйста, помочь разобраться в ошибке.

задание:
Создать программу на языке Ассемблер, что позволяет организовать вычисления (сложение и вычитание) по формуле K=(a+5)-(c+d)+(e-f-7+a).

вот программа:
Код:
format MZ
start:    mov ax,cs
      mov ds,ax
        mov al,[a]
        add al,5
        mov dl,al
        mov al,[c]
        add al,[d]
        sub dl,al
        mov al,[e]
        sub al,[f]
        sub al,7
        add al,[a]
        add al,dl
        mov ah,4Ch
        int 21h
;--------------
a db 5
c dw 2
d dw 4
e dw 67
f dw 12
скрин ошибки
ошибка.png

всем огромное спасибо!!!
carrie bradshaw вне форума Ответить с цитированием
Старый 18.05.2014, 10:38   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Так вам прямо и честно сказали: размеры операндов не соответствуют. У переменной c размер слово (16 бит), а вы запиховываете его в восьмибитный регистр.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 18.05.2014, 10:47   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кстати вопрос автору темы на засыпку: А почему переменка "а" - байт. а остальные переменки - слова?
Если хочешь использовать слова - то регистры нужно писать с окончанием "х" (ах вх и т.д.)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2014, 13:18   #4
carrie bradshaw
Форумчанин
 
Регистрация: 25.01.2014
Сообщений: 105
Вопрос как реализовать вывод на экран?

вот программа без ошибки. Как сделать вывод?
Код:
    format MZ
start:    mov ax,cs
      mov ds,ax
        mov al,[a]
        add al,5
        mov dl,al
        mov al,[c]
        add al,[d]
        sub dl,al
        mov al,[e]
        sub al,[f]
        sub al,7
        add al,[a]
        add al,dl
        mov ah,4Ch
        int 21h
;--------------
a db 5
c db 2
d db 4
e db 67
f db 12
всем спасибо!
carrie bradshaw вне форума Ответить с цитированием
Старый 18.05.2014, 13:32   #5
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

http://hashcode.ru/questions/125794/...стра-в-консоль
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler. Нужны комментарии к программе. coolaginnik Помощь студентам 0 17.06.2013 20:01
Assembler. Поиск серийного номера в программе, пропущенной через дизассемблер IDA Afellay92 Помощь студентам 2 12.04.2013 00:08
ошибка в программе на flat assembler Ted_45 Помощь студентам 0 26.06.2012 09:34
Ошибка в программе (Assembler) Modo Помощь студентам 2 23.12.2010 20:04
Assembler - Помогите найти ошибку в программе Asya555 Помощь студентам 0 30.04.2009 16:08