Составители:
Рубрика:
58
; Схема преобразования десятичного числа а2а1а0 в 16-ричную СС
по ;схеме Горнера - N16=(a2*A+a1)*A+a0 , где A десятичное осно-
вание
VAL proc near
push bx ; сохранение
push cx ; регистров
push dx ; в стеке
lea bx, N_INPBUF ; адрес начала числа
mov cl, N_FACTLEN ; фактическая длина числа
xor ch, ch ; расширить до сх
xor ax, ax
mov dl, 10 ; основание системы счисления
VAL1: imul dl ; умножаем на основание
mov dh, [bx]
sub dh, "0" ; преобразуем его в цифру
add al, DH ; добавляем к результату
inc bx ; на следующий символ
loop VAL1
cmp ax, 255
clc ;сброс флага CF
jle VAL2
stc ; если результат больше 255 установить флаг CF=1
VAL2: pop dx ; восстановить
pop cx ; регистры
pop bx ; из стека
ret
VAL endp
; Подпрограмма удаления подстроки
; Схема преобразования десятичного числа а2а1а0 в 16-ричную СС по ;схеме Горнера - N16=(a2*A+a1)*A+a0 , где A десятичное осно- вание VAL proc near push bx ; сохранение push cx ; регистров push dx ; в стеке lea bx, N_INPBUF ; адрес начала числа mov cl, N_FACTLEN ; фактическая длина числа xor ch, ch ; расширить до сх xor ax, ax mov dl, 10 ; основание системы счисления VAL1: imul dl ; умножаем на основание mov dh, [bx] sub dh, "0" ; преобразуем его в цифру add al, DH ; добавляем к результату inc bx ; на следующий символ loop VAL1 cmp ax, 255 clc ;сброс флага CF jle VAL2 stc ; если результат больше 255 установить флаг CF=1 VAL2: pop dx ; восстановить pop cx ; регистры pop bx ; из стека ret VAL endp ; Подпрограмма удаления подстроки 58
Страницы
- « первая
- ‹ предыдущая
- …
- 56
- 57
- 58
- 59
- 60
- …
- следующая ›
- последняя »