Size: a a a

Ассемблер

2020 June 10

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Максим Кавецкий
У меня при умножении выходит за пределы одного байта, однако в кэрри не происходит переполнения, это из-за того, что переполнение кэрри случается только если 9-й бит занимает 1?
А так у меня заполняется OV какое-то..  mcs
.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
это все есть в описании mul и div
источник
2020 June 11

МК

Максим Кавецкий... in Ассемблер
Спасибо! Понял ответ на вопрос)
источник

МК

Максим Кавецкий... in Ассемблер
Добрый день! Выполнил операцию сравнения СТ с переменной "с". В учебнике написано, что в регистр состояния пишется код определенный - результат. Я так понимаю это он?
источник

МК

Максим Кавецкий... in Ассемблер
не получается понять 13-15 строки
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
после fcom выставляются Биты слова статуса fpu (с1 с2 с3) , которые по расположению соответствуют флагам CF ZF и ещё что-то. поэтому чтоб сделать ветвление выполнения программы, используют стандартный jcc, предварительно скопирова слово статуса fpu в регистр ax, а далее во флаг х86
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
после пентиум 2 появилась команда fcomi, которая сразу вроде выставляет флаги в х86, поэтому нет необходимости слово статуса копировать в ах, а далее во флаг х86
источник

МК

Максим Кавецкий... in Ассемблер
а вы не знаете каким образом здесь проверяется, что после деления результат меньше 0.1 ?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
да так же и определяется. но можно усложнить, через вычитание и определение знака результата
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
вот соответствие флагов
источник

МК

Максим Кавецкий... in Ассемблер
Я может быть когда-то спрашивал это) но что-то забыл или не понял или не спрашивал :D
Вот есть условие (1 фото), а есть мой код (2 фото). Я не могу понять зачем там addc (мне кажется он вообще роли не играет..)
источник

МК

Максим Кавецкий... in Ассемблер
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
а что addc делает? сложение если есть CF?
источник

МК

Максим Кавецкий... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
а что addc делает? сложение если есть CF?
если не путаю, то из-за "с" в конце команды он добавит 0 к Аккумулятору + ещё из флага кэрри значение
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Максим Кавецкий
если не путаю, то из-за "с" в конце команды он добавит 0 к Аккумулятору + ещё из флага кэрри значение
а офф. документация есть скрин? не думаю что это верно. для х86 есть adc - и тут понятно мне что она делает, а вот в твоей архитектуре могут быить различия
источник

МК

Максим Кавецкий... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
а офф. документация есть скрин? не думаю что это верно. для х86 есть adc - и тут понятно мне что она делает, а вот в твоей архитектуре могут быить различия
из офф. наверное нет, однако нашел на одном сайте
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Максим Кавецкий
если не путаю, то из-за "с" в конце команды он добавит 0 к Аккумулятору + ещё из флага кэрри значение
тогда верно, если есть кери, то А=А+1
источник

МК

Максим Кавецкий... in Ассемблер
только в данном случае не понимаю для чего это. Там же в В находится старший байт результата (после умножения), получается А надо как-то изменять?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
adc делается обычно для старшей части, щас пример приведу
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
есть число 2х байтовой. старший байт (ближе к твоему случаю) В, младший А. итого число состоит из В:А

представим это число как 02h:0FFh (BA соответсвенно).
и тепер. к А прибавим 5, -> А=4. но при этом произошел перенос, так как результат не поместился в байт. чтоб этот перенос учесть в В делают сразу после add еще и adc B,0. в любом случае проверяется кери, и если он TRUE то еще прибавляется 1 к В. итого В=03h, A=04h

теперь представим это число как 07h:03h и прибавим 3. переноса не будет и старшая часть при выполнении Adc никак не поменяется. 07h:06h
источник