Сборник по задачам и примерам Assembler

     

Вычитание чисел размером N байт без учета знака



Вычитание чисел размером N байт без учета знака

---------------------------------------------------------------------

:sub_unsign_N -.процедура вычитания чисел размером N байт без учета знака
:Вход: minuend и deduction - уменьшаемое и вычитаемое, N - длина в байтах.
;Выход: minuend - значение разности.

---------------------------------------------------------------------

.data значения в minuend и deduction нужно внести

minuenddb ? уменьшаемое

N=$-minuend ;длина в байтах значений minuend и deduction '.

deduction db ? :вычитаемое

.code

sub_unsign_N proc

mov cl.N

xor si,si cycl: moval ,deduction[si]

sbbminuend[si].al

jnc @@ml

negminuendtsi] @@ml: inc si

loop cycl

ret sub_uns1gn_N endp

Программа учитывает возможный заем из старших разрядов. Длина уменьшаемого должна быть не меньше длины вычитаемого, недостающие разряды вычитаемого должны быть нулевыми. В любом случае, результат — абсолютное значение.

Сегмент данных может быть задан, например, так:

.data

N equ5 ;длина в байтах значений minuend и deduction

minuenddb 30.43.65.230,250 уменьшаемое

deduction db 45.34.65.78.250 ;вычитаемое



Содержание раздела