Инструменты пользователя

Инструменты сайта


examination:asm:question31

Вопрос №31. Сложение двоичных чисел

Сложение двух двоичных беззнаковых целых чисел выполняется поразрядно от младшего разряда к старшему (т.е. слева направо) и принципиально ничем не отличается отсложения обычных десятичных чисел в столбик. Каждая пара битов складывается между собой.

Процессор выполняет сложения операндов по правилам сложения двоичных чисел. Проблем не возникает, пока значение результата не превышает размерности операнда. Если это происходит, то результат оказывается неверен. Например, выполним сложение в двоичном виде 254+5=259: 11111110+0000101=100000011

Результат вышел за пределы 8 битов, и не вместился полностью в поле. Для фиксации такого результата предназначен флаг CF. Именно установкой этого флага фиксируется факт переноса единицы из старшего разряда операнда.

В системе команд процессора имеются 3 команды двоичного сложения:

  1. команда инкремента inc операнд (причем использованиеи этой команды никак не влияет на cf)
  2. команда сложения add операнд_1, операнд_2
  3. команда сложения с учетом флага переноса CF (операнд_1=операнд_1+операнд_2+значение_CF) adc операнд_1, операнд_2
examination/asm/question31.txt · Последние изменения: 2014/01/15 08:12 (внешнее изменение)