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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2013, 22:38   #1
Amet13
 
Регистрация: 21.04.2012
Сообщений: 5
По умолчанию Однобайтный код ошибки

Здравствуйте, у меня задание по лаб. раб. по асму.
Вот постановка задачи:
Цитата:
Разработать программу для вычисления заданного арифметического выражения y^2-min(a,b). Исходные данные определить в программе с помощью директив определения данных, результат занести в область памяти с именем REZULT.
Кроме того, в качестве информации о корректности выполнения вычислений сформировать однобайтовый код ошибки, равный 0, если результат операции корректен, и равный FFH в противном случае. тип данных знаковые, длина - слово
вот код:
Код:
.286	;используем операции 286го процессора
.model tiny	;директива модели памяти, связка сегментов
.code	;директива отмечает начало сегмента кода
org 100h	;при загрузке com файла в память, dos занимает
			;первые 256 байт (100h)
start: 
	mov bx,a	;занесли a в bx
    cmp bx,b	;сравнили с b
    jl a1	;переход если меньше, b<bx
		mov bx,b	;bx=min(a,b)
a1:
	mov al,y	;занесли y в al
    mul al	;умножили al на y (ax=y^2)
    sub ax,bx	;вычитаем от ax bx (ax=y^2-min(a,b))
    mov result,ax	;поместили значение ax в result
    ret	;выход из com-программы (аналог int 20h)
a dw 2	;DefineWord определена как слово = 2 байта
b dw 1
y db 2	;y^2 - слово
error db 0
result dw ?	;результат 2 байта (35d8)
	end start
но тут не учтено одно НО, то что выделено жирным в постановке задачи
я просто не могу понять, какие ошибки тут могут возникать и для чего формировать какой-то там код, подскажите пожалуйста
Amet13 вне форума Ответить с цитированием
Старый 03.02.2013, 08:18   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Amet13
"Ну что, сынку, помогли тебе твои ляхи?" (© Николай Гоголь "Тарас Бульба")
Mikl___ вне форума Ответить с цитированием
Старый 03.02.2013, 15:12   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

1. Если ошибок быть не может, значит, во всех случаях должно быть 0.
2. По условию y - двухбайтовая величина. Что будет, если она не поместится в al?
s-andriano вне форума Ответить с цитированием
Старый 03.02.2013, 16:14   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

s-andriano, +1

Amet13, я согласен, рискну сделать предположение, что формировать ошибку может понадобится, если результаты вычислений выходят за разрядную сетку, отведедённую у Вас под вычисление или под хранение результата...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверьте код и найдите ошибки Frank63 Паскаль, Turbo Pascal, PascalABC.NET 6 26.10.2012 21:55
Простой код и магические ошибки? tq404 Помощь студентам 2 17.01.2012 04:48
RenameFile код ошибки 2 ArtGrek Общие вопросы Delphi 2 03.02.2011 10:41
Код ошибки: 0x800703E7 misha_ch Операционные системы общие вопросы 2 17.09.2010 10:24
Код ошибки: 0x800703E7 misha_ch Компьютерное железо 4 23.08.2010 17:15