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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2008, 01:55   #1
a.s.d
Новичок
Джуниор
 
Регистрация: 02.04.2008
Сообщений: 2
По умолчанию Надо проверить задачку

Нужно выполнить последовательность действий не связанных между собой: 1.)X3+1 2)X3+X4+CF 3)X4+X1 4)X1/X3 5)X2=-X4. Числа х1,х2,х3,х4 - произвольные. Я туго еще понимаю в этом,вот что то накидал,кто может проверить и дополнить?!Буду благодарен.


Код:
.model small
.stack 100h
.data
 x1 dw 10h
 x2 dw 20h
 x3 dw 30h
 x4 dw 40h
 res dw ?
.code
 main:
mov ax,@data
mov ax, x3
add ax,1
mov dx,x3
add dx, x3
;add dx, cf
mov bx,x4
add bx,x1
mov ax, x1
mov bx, x3
div bx
mov ax,4c00h
int 21h
end main

Последний раз редактировалось rpy3uH; 15.09.2008 в 19:18.
a.s.d вне форума Ответить с цитированием
Старый 15.09.2008, 11:45   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

В общем я тоже не очень, но
2)X3+X4+CF
mov dx,x3
adс dx, x4 ;Сложение с учетом значения флага переноса CF.
;Действие: приемник = приемник + источник + CF.
;Флаги: OF = r SF = r ZF = r AF - r PF = r CF = r

4) а)перед делением необходимо проверить, что Х3 не равно 0. иначе делить нельзя!
б) Операция деления зависит от размерности операндов
DIV
• DIV делитель
• DIV r/m8
DIV r/ml6
DIV r/m32
• Беззнаковое деление.
Действие: делимое задается неявно, и его размер зависит от размера делителя, который явно указывается в команде. Местоположения делимого, делителя, частного и остатка — в зависимости от их размерности
Местоположения делимого, делителя, частного и остатка после выполнения
команды DIV
Размер операнда Делимое Делитель Частное Остаток ]Максимальное
частное
Слово (байт) АХ r/m8 AL АН 255
Двойное слово (слово) DX:AX r/ml6 АХ DX 65535
Учетверенное слово
(двойное слово) EDX:EAX r/m32 ЕАХ EDX 2(в степени32)-1
Исходя из этого выполняется деление

5)X2=-X4
neg ax,x4
mov x2,x4 ; в общем в последнем сомневаюсь, т.к. в этом случае х2 д.б.
;обьявлено в переменных x2 dw ? и допускать ввод из вне
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 15.09.2008, 21:59   #3
a.s.d
Новичок
Джуниор
 
Регистрация: 02.04.2008
Сообщений: 2
По умолчанию

спасибо за ответ,вот щас буду разбираться!
a.s.d вне форума Ответить с цитированием
Старый 16.09.2008, 09:38   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

А еще лучше установите компилятор MASM или FASM, и отладчик и проганяйте свои программы, будете видеть все результаты. Где что взять есть на форуме.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверить тип переменной satana Общие вопросы Delphi 10 20.11.2010 21:43
Как проверить строку? nikleb PHP 6 07.07.2008 22:04
помогите пожалуйста решить задачку,очень надо __k1ll3r__ Паскаль, Turbo Pascal, PascalABC.NET 2 28.05.2008 08:47