Size: a a a

Ассемблер

2020 June 11

A

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

МК

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

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

теперь представим это число как 07h:03h и прибавим 3. переноса не будет и старшая часть при выполнении Adc никак не поменяется. 07h:06h
Спасибо за такое прекрасное объяснение! Этот момент уловил, однако в данном случае до этой операции (addc    A, #0) флаг кэрри ведь должен уже упасть (если он там есть) , верно?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Максим Кавецкий
Спасибо за такое прекрасное объяснение! Этот момент уловил, однако в данном случае до этой операции (addc    A, #0) флаг кэрри ведь должен уже упасть (если он там есть) , верно?
я не совсем понеимаю твой асм. но делается обычно
add младшей части ;в этот момент и ставится/неставится CF
adc старшей
;а здесь CF учитывается/используется
источник

A

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

МК

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

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
и в adc B,0 необязательно должен быть ноль
02h:0FFh
                +
07h:03h
сначало складываются младшие части через add
а потом старшие через adc (с учетом возможного CF)
источник

МК

Максим Кавецкий... in Ассемблер
Спасибо за помощь! пока вынужден уходить, обязательно в се переварю ещё раз по приходу домой)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
и в adc B,0 необязательно должен быть ноль
02h:0FFh
                +
07h:03h
сначало складываются младшие части через add
а потом старшие через adc (с учетом возможного CF)
а если и в сташей части результат не поместится, то надо проверять OF (overflow), если этот флаг выставится, то следует считать вычисления ошибочными, тк результат не помещается в эти 2 "регистра"
источник

МК

Максим Кавецкий... in Ассемблер
а если из РПД в аккумулятор переместить отрицательное число, то будет выставлен флаг кэрри?
источник
2020 June 12

МК

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

МК

Максим Кавецкий... in Ассемблер
Это что-то делает с 5-м битом аккумулятора, верно понимаю?
источник

МК

Максим Кавецкий... in Ассемблер
Я просто не могу понять вот этого, как это работает
источник

МК

Максим Кавецкий... in Ассемблер
Мы берём один чит из второго операнда?
источник

МК

Максим Кавецкий... in Ассемблер
например ACC.5 - это пятый бит берётся7
источник

МК

Максим Кавецкий... in Ассемблер
я понял кажется, это берёт 5-й быт из аккумулятора  и "И" с кэрри
источник

МК

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

МК

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

МК

Максим Кавецкий... in Ассемблер
есть какой-нибудь пример когда используется флаг F0?
источник

D

Denis in Ассемблер
General Purpose Status Flag?
источник

D

Denis in Ассемблер
для записи событий гугл говорит
источник