Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- STACKSG SEGMENT PARA STACK ; определение сегмента стека
- DW 128 DUP(?) ; под стек резервируем 128 слов
- .386
- STACKSG ENDS ; конец сегмента стека
- ;---------------------------------------
- DATASG SEGMENT PARA use16 ; определение сегмента данных
- _1 db "I-", "$"
- _2 db "II-", "$"
- _3 db "III-", "$"
- _4 db 'IV-', '$'
- _5 db 'V-', '$'
- _6 db 'VI-', '$'
- _7 db 'VII-', '$'
- _8 db 'VIII-', '$'
- _9 db 'IX-', '$'
- List dw _1, _2, _3, _4,_5,_6,_7,_8,_9
- numb dw ?
- indent db '', 0Dh,0Ah,'$'
- AskClient db 'Put your numbers to convert: $'
- InBuff label byte
- MaxSymb Db 9
- RealSymb Db ?
- StringT db 1 dup ('$')
- DATASG ENDS ; конец сегмента данных
- ;---------------------------------------
- CODESG SEGMENT PARA use16 ; определение сегмента кода
- ; исполнима¤ часть программы
- MAIN PROC FAR
- ASSUME CS:CODESG, SS:STACKSG, DS:DATASG, ES:DATASG
- ; стандартное начало EXE-программы
- mov ax, DATASG
- mov ds,ax
- xor ax,ax
- MOV AX,0600H ;Запрос на очистку экрана.
- MOV BH,07 ;Нормальный атрибут (черно/белый).
- MOV CX,0000 ;Верхняя левая позиция.
- MOV DX,184FH ;Нижняя правая позиция.
- INT 10H ;Передача управления в BIOS.
- xor ax,ax
- xor bx,bx
- xor cx,cx
- xor dx,dx
- mov dx, offset AskClient
- mov ah,9
- int 21h
- xor dx,dx
- xor ax,ax
- mov dx, offset InBuff
- mov ah, 0ah
- int 21h
- xor dx,dx
- mov dx, offset indent
- mov ah, 09
- int 21h
- xor dx,dx
- MOV DH, 10 ; позиция по вертикали
- MOV DL, 35 ; позиция по горизонтали
- MOV AH, 02H ; установить положение курсора
- INT 10H ; вызов прерывания BIOS 10H
- ;mov cx, offset n
- ;sub cx, 31
- mov cl, [RealSymb]
- metka:
- mov ax,0
- mov al, StringT[si]
- sub al, 49
- mov bl, al
- shl bl, 1 ;умножение на 2, т.к. размер адреса - 2 байта
- xor ax, ax
- mov dx, offset List[bx]
- mov ah, 09h
- int 21h
- add si, 1
- loop metka
- mov dx, offset indent
- mov ah, 09
- int 21h
- xor dx,dx
- mov dx, offset AskClient
- mov ah,9
- int 21h
- xor dx,dx
- ; стандартное окончание программы
- MOV AX,4C00h
- INT 21h
- MAIN ENDP ; конец исполнимой части программы
- CODESG ENDS ; конец сегмента кода
- END MAIN ; указывает, что исполнима¤ часть программы
- ; начинаетс¤ с метки MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement