Ввод с клавиатуры, обработка и вывод числа... мне очень нужно, но нигде не могу найти, чтоб с нормальными коментариями было.. пожалуйста.. кто-то напишите с комментарияти код.. (в вводе не очень понятно.. ) Почитать бы где-то инфу нормальную по вводу... только с коментами нормальными.. вот у меня кусок кода есть .. там у меня с ним теман... вобще мое задание звучит так на РГР.. "напишите программу, которая выполняет вычитание двух введеных целых шестизначных чисел в формате ASCII и выводит результат. Предусмотреть выполнение операции вычитания для N колличества пар чисел" Уменя есть пример моего задания, но мне там практически ничего не понятно.. если что инфу мне желательно пополнее.. если получится с алгоритмами ))
| Код |
.model small .stack 100h //ввести строку символов .data dm db 10 ;;;;;;;;;;;что это за переменная?? и для чего она используется????? я не понимаю, как она связана с переменной buf dr db ? rez db 10dup(?) buf db 10dup(?) mes1 db ‘enter your string’ mes2 db ‘Rez = $’ перевод курсора на следующую строку. News db 0dh, 0ah ‘$’ d db 10 переменная играет роль множителя .code start: mov ax, dgroup mov ds, ax ???mes1 db???? mov ah, 0ah функция для ввода mov dx, offset dm (получение адреса смещения) mov cl, dr mov si, cx mov di, 0 mov bx, 0
n: mov bl, byte ptr buf[di] – прочитать первый элемент sub bl, ‘0’ inc di mul d add ax, bx cmp di, si jb n
|
вот пример у меня такой есть.. но очень первый понять хочу..
| Код |
.model small .stack 100h .data msg1 db 13,10,"Нажмите ""Y"" для повтора. Esc - Выход$" msg2 db 'Введите 1-е число: $' msg3 db 'Введите 2-е число: $' msg4 db 'Результат вычетания: $' raz db '',13,10,'$' p2 db 7, 10 dup(?) p1 db 7, 10 dup(?) .code begin: mov ax, DGROUP mov ds, ax ___begin: call cls mov dx, offset msg2 call write mov dx, offset p1 call read mov dx, offset msg3 call write mov dx, offset p2 call read mov bl, byte ptr p1[1] mov ax, bx inc ax lea si, p1 lea di, p2 add si, ax add di, ax
dec ax mov bx, ax mov cx, ax
_push: mov al, byte ptr [si] sbb al, byte ptr [di] aas ;корекция вычетания push ax dec si dec di loop _push mov cx, bx lea si, raz _pop: pop word ptr [si] add word ptr [si], 48 inc si loop _pop mov word ptr [si],'$' lea dx, msg4 call write lea dx, raz call write lea dx, msg1 call write
choice: mov AH,08h int 21h cmp AL,27 jz exit cmp AL,"y" jz ___begin cmp AL,"Y" jz ___begin jmp choice exit: ;--------------------------------------------- mov ax, 4c00h int 21h ;--------------------------------------------- write PROC mov ah,9 int 21h ret write ENDP
read PROC mov ah,0ah int 21h call cls ret read ENDP
Cls PROC push es push ax push cx push di push BX push DX
mov ax,0B800h mov es,ax
mov di,00 mov al,32 mov ah,16+7 mov cx,2000 rep stosw
MOV AH,02 MOV BH,00 MOV DH,00 MOV DL,00 INT 10H
pop DX pop BX pop di pop cx pop ax pop es ret Cls ENDP end begin
|
|