Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2591

.pdf
Скачиваний:
2
Добавлен:
07.01.2021
Размер:
25.15 Mб
Скачать

jmp vvod_f5 jmp_ret5: jmp rt jmp_bg5: jmp bg

;===============================================================

rt:

ret

 

 

 

 

main endp

 

 

 

 

cursor proc

 

;\

 

|начало процедуры

mov ah,02

; \

|установка курсора

mov bh,00

;

\

|номер экрана

mov dh,num_ln

; процедура |номер строки

inc num_ln

;

перевода

|увеличение номера строки на 1

mov dl,00

;

курсора

|номер столбца

int 10h

;

/

|передача управления в BIOS

ret

 

; /

|возврат в основную программу

cursor endp

 

;/

 

|конец прцедуры

ASCII_binb PROC

 

 

; процедура перевода из ASCII в bin для байта

mov

mult10,1

 

 

MOV BINVAL_B,0

 

XOR

AX,AX

 

 

 

XOR

DX,DX

 

 

 

MOV

CX,10

 

 

;Фактор умножения

LEA SI,NAMEFLD_b-1

;Адрес ASCVAL

MOV

BL,FAKTLEN_b

;Длина ASCVAL

MOV

BH,0

 

 

 

A21:

 

 

 

 

MOV

AL,[SI+BX]

;Выбрать ASCII-символ

AND

AX,000FH

;Очистить зону тройки

MUL

MULT10

 

;Умножить на фактор 10

ADD

BINVAL_b,AX

;Прибавить к двоичному

MOV

AX,MULT10

;Вычислить следующий

MUL

CX

 

 

;Фактор умножения

MOV

MULT10,AX

 

DEC

BX

 

 

;Последний. ASCII-символ?

JNZ

A21

 

 

;Нет – продолжить

ret

 

 

 

 

ASCII_binb ENDP

;************************************************************************

ASCII_binw PROC

; процедура перевода из ASCII в bin для слова

mov

mult10,1

 

MOV

BINVAL_W,0

 

XOR

AX,AX

 

XOR

DX,DX

 

MOV

CX,10

; фактор умножения

 

 

131

LEA SI,NAMEFLD_w-1

MOV

BL,FAKTLEN_w

MOV

BH,0

B20:

 

MOV

AL,[SI+BX]

AND

AX,000FH

MUL

MULT10

ADD

BINVAL_w,AX

MOV

AX,MULT10

MUL

CX

MOV

MULT10,AX

DEC

BX

JNZ

B20

ret

 

ASCII_binw ENDP

;адрес ASCVAL

;длина ASCVAL

;выбрать ASCII-символ

;очистить зону тройки

;умножить на фактор 10

;прибавить к двоичному ;вычислить следующий

;фактор умножения

;последний. ASCII-символ? ;если нет – продолжить

;************************************************************************

ascii_bind proc

;процедура перевода из ASCII в bin для двойного слова

mov

mult10,1

mov word ptr BINVAL_d,0

mov word ptr BINVAL_d[2],0

xor

ax,ax

 

xor

dx,dx

 

mov

CX,10

 

lea si,namefld_d-1

mov

bl,faktlen_d

mov

bh,0

 

abd20:

 

 

mov

al,[si+bx]

 

and

ax,000fh

 

mul

mult10

 

add word ptr binval_d,ax

adc word ptr binval_d+2,dx

mov

ax,mult10

 

mul

cx

 

mov

mult10,ax

 

dec

bx

 

jnz

abd20

 

ret

 

 

ascii_bind endp

 

;***********************************************************************

clrascval proc

;процедура очистки ASCVAL

mov cx,32

 

mov si,31

 

clr1: and ascval[si],30h

 

dec si

 

 

132

loop clr1

 

 

ret

 

 

clrascval endp

 

 

clrscr proc

 

 

mov ax,0600h ;\

|al=00 (весь экран), ah=06 (прокрутка)

mov bh,07

; \

|чёрно-белый

mov cx,0000

; очистка экрана

|левая верхняя позиция

mov dx,314fh

; /

|правая нижняя позиция

int 10h

;/

|передача управления в BIOS

mov num_ln,0 clrscr endp

;************************************************************************ bin_bin proc

call clrascval lea si,ascval[31] xor cx,cx

xor bx,bx

mov ax,word ptr rezult mov dx,word ptr rezult+2

metb1: cmp dx,0

 

jne metb5

 

cmp ax,2

 

jb metb2

 

metb5: sub ax,2

 

sbb dx,0

 

add bx,1

 

adc cx,0

 

jmp metb1

 

metb2: or al,30h

 

mov [si],al

 

dec si

 

cmp cx,0

 

je metb3

 

jmp metb4

 

metb3: cmp bx,0

 

jne metb4

 

ret

 

metb4: mov ax,bx

 

mov dx,cx

 

xor bx,bx

 

xor cx,cx

 

jmp metb1

 

bin_bin endp

 

CODESEG ENDS

;конец сегмента данных

END

;конец основной процедуры

 

133

Учебное издание

ЛЕОНИД ЕФИМОВИЧ ОЛЕЙНИК

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Учебное пособие

Для специальности 075500

Часть 2

ЛОГИЧЕСКИЕ ОПЕРАЦИИ. УСЛОВНЫЕ И БЕЗУСЛОВНЫЕ ПЕРЕХОДЫ, ОРГАНИЗАЦИЯ ЦИКЛОВ, ВЫЗОВ ПРОЦЕДУР,

ИСПОЛЬЗОВАНИЕ СТЕКА

Главный редактор Т. И. Калинина

Подписано к печати 24.05.12 Формат 60 x 90 1/16. Бумага писчая Гарнитура Таймс Оперативный способ печати Усл. п. л. , уч.-изд. л.

Тираж экз. 145 Заказ Цена договорная

Издательство СибАДИ 644099, Омск, ул. П. Некрасова, 10

Отпечатано в ПЦ издательства СибАДИ 644099, Омск, ул. П.Некрасова, 10

134

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]