Записать вводимое значение с клавиатуры/из регистра в переменную - Assembler
Формулировка задачи:
Как записать вводимое значение с клавиатуры в переменную( tasm)?
как записать значение из регистра в переменную(tasm)?
Решение задачи: «Записать вводимое значение с клавиатуры/из регистра в переменную»
textual
Листинг программы
;------------------------------------------------------------------------- InInt proc near ; процедура интерпретации знаковых целых чисел ; параметры: si - смещение буфера ; результат возвращается в регистре ax ;------------------------------------------------------------------------- push cx push dx push bx push si push di ; обрабатываем содержимое буфера cmp byte ptr [si],"-" ; если первый символ минус jnz ii1 mov di,1 ; устанавливаем флаг inc si ; и пропускаем его ii1: xor ax,ax mov bx,10 ; основание системы счичления ii2: mov cl,[si] ; берем символ из буфера cmp cl,0dh ; это замыкающий 0? jz endin ; завершаем разбор числа ; если это не замыкающий 0, то проверяем его на правильность cmp cl,'0' ; символ < 0 jl endin cmp cl,'9' ; символ > 9 ja endin ; на этом разбор числа заканчивается sub cl,'0' ; делаем из символа число mul bx ; умножаем на 10 add ax,cx ; прибавляем к остальным inc si ; указатель на следующий символ jmp ii2 ; повторяем ; все символы из буфера обработаны число находится в ax endin: cmp di,1 ; если установлен флаг, то jnz ii3 neg ax ; делаем число отрицательным ii3: pop di pop si pop bx pop dx pop cx ret InInt endp ;-------------------------------------------------------------------------