Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Asm для начинающих > Ввод и вывод числа в десятичном представлении |
Автор: user2 27.3.2007, 21:39 |
Помогите, please, разобраться с программой - ввод и вывод числа в десятичном представлении, а точнее с процедурами output и EnterFigure Помощь хотелось бы получить, например, в виде подробных коментариев рядом с командами .model small .stack 100h .data rezAX db "АХ=$" stra db "Введите число: $" message db "Вы не ввели число. В регистре АХ хранится 0. $" n db 10,13,"$" max db 6 len db 0 figure db 6 dup ("$") .code output proc;вывод числа на экран ;>>занесение цифр в стек xor cx, cx xor bx, bx push ax mov bl, 10 cycl1: xor dx,dx div bx add dl, 30h push dx inc cl cmp ax,0 JZ next jmp cycl1 ;<<занесение цифр в стек next: mov ah, 9h lea dx, rezAX int 21h xor ax,ax xor dx,dx mov ah, 2h cycl2: pop dx int 21h loop cycl2 pop ax ret output endp ;----------------------------------------------------------------------------------------------- EnterFigure proc ;чтение числа в регистр AX xor ax,ax ;чтение mov ah, 0Ah ;числа lea dx, max ;(строки) int 21h xor ax,ax xor bx,bx xor cx,cx lea si, len mov cl, [si] cmp cl,0 JZ showmessage sub cl,1 lea si, figure mov al,[si] sub al, 30h cmp cx,0 JZ next1 cycl: mov bl,10 mul bx inc si mov bl,[si] sub bl, 30h add ax,bx loop cycl jmp next1 showmessage: mov ah, 9h lea dx, message int 21h xor ax, ax next1: ret EnterFigure endp main: mov ax,@data mov ds,ax xor ax, ax mov ah, 9h lea dx, stra int 21h mov ah, 2h mov dl, 10 int 21h mov dl,13 int 21h call EnterFigure ;>>вызов функции для ввода числа(диапазон вводимого числа 0..65535) mov bx, ax ;>>перевод каретки mov ah, 2h mov dl, 10 int 21h mov dl,13 int 21h mov ax, bx call output ;>>вызов функции для вывода числа из регистра АХ на экран mov ah, 1h int 21h mov ah,4ch int 21h end main |
Автор: Kuvaldis 27.3.2007, 22:24 |
Отредактируй свой пост и вставь теги кода (кнопочка "Код", выбрать АСМ) Иначе нет желания разбираться |
Автор: user2 28.3.2007, 07:42 | ||
Помогите, please, разобраться с программой - ввод и вывод числа в десятичном представлении, а точнее с процедурами output и EnterFigure Помощь хотелось бы получить, например, в виде подробных коментариев рядом с командами
|