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 ; определение сегмента данных
- result db ?
- indent db '', 0Dh,0Ah,'$'
- numb dw 1;
- InBuff label byte
- MaxSymb Db 9
- RealSymb Db ?
- StringT db 9 dup ('$$$$')
- AskClient db 'Put your numbers to convert: $'
- roman db '-I-$$$$-II-$$$-III-$$-IV-$$$-V-$$$$-VI-$$$-VII-$$-VIII-$-IX-$'
- ;0-2 = I, 7-10 = II, 14-18 = III, 21-24 = IV, 28-30 = V,
- ;35-38 = VI, 42-46= VII, 49-54 = VIII,56-59 = IX
- roman2 db '$$$$$$-I-$$$-II-$$-III-$-IV-$$-V-$$$-VI-$$-VII-$-VIII-$-IX-$$'
- ;6-8 = I, 12-9 = II, 18-16 = III, 24 = IV, 30 = V,
- ;36 = VI, 42= VII, 48 = VIII,56 = IX
- 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 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
- xor ax,ax
- mov al, StringT[2]
- sub al, 48
- mov bl, 6
- mul bl
- mov si, ax
- mov dx, offset roman2[si]
- mov ah,9
- int 21h
- xor dx,dx
- mov dx, offset indent
- mov ah, 09
- int 21h
- xor dx,dx
- ;========================================
- ;«десь ввод трЄх арабских чисел, перевод из аски
- ;xor ax,ax
- ;xor bx,bx
- ;mov al, numberA
- ;sub al, 48
- ;mov bl, numberB
- ;sub bl, 48
- ;mov cl, numberC
- ;sub cl, 48
- xor ax,ax
- mov ah, 2
- lea bx, roman2 ; BX - адрес римских чисел
- ;mov al, 0
- mov al, 3
- XLATB
- mov dl, al
- int 21h
- ;mov al, StringT[2]
- ;XLATB
- ;mov dl, al
- ;int 21h
- ;mov al, StringT[2]
- ;XLATB
- ;mov dl, al
- ;int 21h
- ; стандартное окончание программы
- MOV AX,4C00h
- INT 21h
- MAIN ENDP ; конец исполнимой части программы
- CODESG ENDS ; конец сегмента кода
- END MAIN ; указывает, что исполнима¤ часть программы
- ; начинаетс¤ с метки MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement