Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная работа готовая.docx
Скачиваний:
182
Добавлен:
22.11.2018
Размер:
81.59 Кб
Скачать

Задание 6 Составить программу (для 16-разрядного процессора), реализующую следующее задание:

Составить программу преобразования целого положительного числа, записанного в системе с основанием q=10, в равное ему число в системе с основанием р. Ввод данных обеспечить при помощи клавиатуры, вывод данных осуществить на экран.

Вариант q

Вариант p

10

13

.MODEL small

stack 255

dataseg

str1 db "Введите число от 0 до 49 и нажмите p$"

str2 db "Нажмите ESC для выхода$"

stolb db ?

stolb1 db ?

sd1 db ?

sd2 db ?

sd3 db ?

sd5 db ?

wer db ?

fg1 db ?

codeseg

start:

mov ax,@data

mov ds,ax

mov ah,00h ;отчистка экрана

mov al,03h ;параметры экрана

int 10h

mov ah,2 ;Ф-я BIOS установка позиции курсора

mov bh,0 ;0-страница

mov dh,1 ;Строка

mov dl,1 ;Столбец

int 10h ;Вызов прерывания BIOS

lea dx,str1

mov ah,09h

int 21h

mov ah,2 ;Ф-я BIOS установка позиции курсора

mov bh,0 ;0-страница

mov dh,15 ;Строка

mov dl,1 ;Столбец

int 10h ;Вызов прерывания BIOS

lea dx,str2

mov ah,09h

int 21h

tur:

mov stolb,5h

mov stolb1,5h

mov sd2,13h

tur1:

mov ah,02h ;установка позиции курсора

mov dh,5h ;кол-во строк

mov dl,stolb ;кол-во колонок

int 10h

mov ah,00h ;Сканируем клавиатуру с одновременным

int 16h ;выводом нажатого символа на экран

cmp al, 1bH ;если нажат "ESC" то прыжок на метку en1

je en1

cmp al, 70h ;если нажат "p" то прыжок на метку tur1 для перевода

je tur2

cmp al,30h

jl tur1

cmp al,39h

jg tur1

jmp ty

en1:

jmp en

ty:

mov dl,al

mov ah,0ah ;запись символа в текущую позицию курсора

mov al,dl ;код символа "&"

mov cx,01d ;кол-во символов

int 10h

inc stolb

mov sd5,al

mov al,stolb

cmp al,7h

je tur3

mov al,sd5

clc

sbb al,30h

mov wer,al

jmp tur1

tur3:

mov al,sd5

clc

sbb al,30h

mov cl,4

rcl wer,cl

add wer,al

mov stolb,5h

jmp tur1

tur2:

call delen

mov ah,02h ;установка позиции курсора

mov dh,9h ;кол-во строк

mov dl,stolb1 ;кол-во колонок

int 10h

mov ah,0ah ;запись символа в текущую позицию курсора

mov al,sd1 ;код символа "&"

mov cx,01d ;кол-во символов

int 10h

inc stolb1

mov ah,02h ;установка позиции курсора

mov dh,9h ;кол-во строк

mov dl,stolb1 ;кол-во колонок

int 10h

mov ah,0ah ;запись символа в текущую позицию курсора

mov al,sd3 ;код символа "&"

mov cx,01d ;кол-во символов

int 10h

inc stolb1

jmp tur1

delen:

mov al,wer

mov ah,0h

div sd2

mov sd1,al

add sd1,30h

mov sd3,ah

mov al,sd3

cmp al,6h

jl met5

cmp al,10h

jl met

add sd3,51h

jmp met2

met:

clc

sbb al,6h

mov sd3,al

add sd3,30h

jmp met2

met5:

add sd3,5dh

met2:

ret

en:

mov ah,4ch

int 21h

end start