Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MYCODE SEGMENT 'CODE'
- ASSUME CS:MYCODE,DS:MYCODE
- msg db 'Input the number> ','$'
- table db '0123456789ABCDEF','$'
- symb db 4 dup(?)
- strr db 4 dup('0')
- car db 0Ah,0Dh,'$'
- ten dw 000Ah
- START:
- ; Загрузка сегментного регистра данных
- PUSH CS
- POP DS
- ;
- CALL CLRSCR
- MOV DX, OFFSET msg
- CALL STR_OUT
- BEG:
- ; Ввод данных
- MOV DI, 0
- m1:
- CALL GETCH
- CMP AL, '*'
- JE cont
- CALL CLRSCR
- MOV AX, 4C00h
- INT 21h
- cont:
- MOV BYTE PTR symb[DI], AL
- INC DI
- CMP DI, 4
- JNE m1
- ; Вывод данных
- MOV DL, ' '
- CALL PUTCH
- MOV DL, '='
- CALL PUTCH
- MOV DL, ' '
- CALL PUTCH
- MOV DX, OFFSET symb
- CALL STR_OUT
- ; Перевод числа в HEX
- MOV DI, 0h
- MOV CX, 0h
- toHEX:
- SHL CX, 4
- MOV BL, symb[DI]
- CALL HEX
- ADD CX, SI
- INC DI
- CMP DI, 4
- JNE toHEX
- MOV DL, ' '
- CALL PUTCH
- ; Перевод числа в DEC
- MOV SI, 0
- m2:
- MOV BX, CX
- MOV AX, CX
- MOV DX, 0
- DIV ten
- PUSH AX
- MUL ten
- SUB BX, AX
- XLATB
- MOV BYTE PTR strr[SI], AL
- INC SI
- POP CX
- CMP CX, 0
- JNE m2
- ;
- MOV SI, 3
- MOV CX, 4
- m3:
- MOV DL, strr[SI]
- MOV strr[SI], '0'
- CALL PUTCH
- DEC SI
- LOOP m3
- MOV DX, OFFSET car
- CALL STR_OUT
- JMP BEG
- ; Процедура ввода символа
- GETCH PROC
- MOV AH, 01H ; функция ввода символа (символ на экран не выводится)
- INT 21H
- RET
- GETCH ENDP
- ; Процедура вывода символа
- PUTCH PROC
- MOV AH, 02H ; функция вывода символа
- INT 21H
- RET
- PUTCH ENDP
- ; Процедура перевода строки
- CLRF PROC
- MOV DL, 10 ; перевод строки
- CALL PUTCH
- MOV DL, 13 ; возврат каретки
- CALL PUTCH
- RET
- CLRF ENDP
- ; Процедура очистки экрана
- CLRSCR PROC
- MOV AX, 0600H ; очистка экрана
- MOV BH, 7
- MOV CX, 0
- MOV DH, 24
- MOV DL, 79
- INT 10H
- MOV AH, 02H ; перевод курсора в верхний левый угол
- MOV BH, 00H ; номер экрана
- MOV DX, 00H ; DH - строка, DL - столбец
- INT 10H
- RET
- CLRSCR ENDP
- STR_OUT PROC
- MOV ah, 09h
- INT 21h
- RET
- STR_OUT ENDP
- HEX PROC
- MOV SI, 0
- comp:
- CMP BL, table[SI]
- JE ret1
- INC SI
- JMP comp
- ret1:
- RET
- HEX ENDP
- RETURN PROC
- MOV AX, 4c00h
- INT 21h
- RET
- RETURN ENDP
- MYCODE ENDS
- END START
Add Comment
Please, Sign In to add comment