Разработка ассемблерной программы вычисления специальной функции
Рефераты >> Программирование и компьютеры >> Разработка ассемблерной программы вычисления специальной функции

mov ax,xni ;значение x

add ax,hk ;x+h

mov xni,ax ;сохраняем новое значение x

ret

zf endp

;----------------------------------------------------------------------------------------------------------

cod proc ;процедура перевода введённого значения с клавиатуры

;в соответствующий ей по номеру порядковый символ ASCII

;для удобства вычислений (см. таб. ASCII)

xor ax,ax ;обнуление регистра AX

mov cods,ax ;чистим переменную decods

mov cx,10 ;заносим в регистр CX значение 10

cd: mov al,[si+bx] ;выбор ASCII - символа

and AX,000fh ;удаление 3 (AL&0Fh)

mul mn ;умножение на множитель для преобразования

add cods,ax ;добавление к полученому результату

mov ax,mn ;вычисление следующего значения множителя

mul cx ;умножение AX на CX

mov mn,ax ;запись в переменную mn значения AX

dec bx ;если не последняя цифра, то - продолжать

jnz cd ;переход по метке cd если не ноль

xor ax,ax ;обнуление регистра AX

mov ax,mn ;записываем в регистр множитель

mov mn,1 ;записываем 1 в переменную mn

ret ;выход из процедуры

cod endp ;результат после выхода из процедуры в cods

;----------------------------------------------------------------------------------------------------------

decod proc ;процедура перевода результата представленного в

;символах кода ASCII,

;в форму приемлимую для вывода (в виде чисел)

mov ascii,0 ;записываем 0 в переменную asc

mov cx,10 ;заносим в регистр CX значение 10

lea si,ascii+4 ;заносим в регистр si значение asc смещенное на 4

dcd2: cmp ax,10 ;сравниваем значение в регистре AX с 10

jb dcd1 ;если в АХ число меньше 10, то - выход

xor dx,dx ;обнуление

div cx ;деление содержимого AX на 10; остаток - в DL

or dl,30h ;формирование кода ASCII очередной цифры

mov [si],dl ;сохранение ASCII - символа

dec si ;декремент si-1

jmp dcd2 ;переход на dcd2

dcd1: or al,30h ;формирование кода ASCII последней (старшей) цифры

mov [si],al ;сохранение ASCII - символа

ret ;выход из процедуры

decod endp

;----------------------------------------------------------------------------------------------------------

CODE ENDS

END begin

Приложение С. Пример выполнения программы.

Пример выявления ошибки на 0


Страница: