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

775

.pdf
Скачиваний:
1
Добавлен:
07.01.2021
Размер:
678.27 Кб
Скачать

mov ax,binval_b mov b2,al

mov al,b1 or al,b2

mov word ptr rezult,ax mov word ptr rezult[2],0

call bin_bin

mov ah,09h lea dx,ascval int 21h

call cursor

mov ah,09h lea dx,soobe_1 int 21h

call cursor

mov ah,09h lea dx,soob0_3 int 21h

call cursor

vvod_f1: mov ah,0ah lea dx,namepar int 21h

xor ax,ax

lea si,namefld mov al,[si] and al,00fh mov binval,ax

cmp binval,1 je jmp_ret1 cmp binval,2 je jmp_bg1 mov ah,09h

lea dx,soobl_err int 21h

call cursor jmp vvod_f1

jmp_ret1: jmp rt

121

jmp_bg1: jmp bg ;===============================================================

f2: ;b1 xor b2

call clrscr call cursor

mov ah,09h lea dx,soobl_2 int 21h

call cursor

;b1

mov ah,09h lea dx,soob_b1 int 21h

mov ah,0ah

lea dx,namepar_b int 21h

call cursor

call ascii_binb

mov ax,binval_b mov b1,al

;b2

mov ah,09h lea dx,soob_b2 int 21h

mov ah,0ah

lea dx,namepar_b int 21h

call cursor

call ascii_binb

mov ax,binval_b mov b2,al

122

mov al,b1 xor al,b2

mov word ptr rezult,ax mov word ptr rezult[2],0

call bin_bin

mov ah,09h lea dx,ascval int 21h

call cursor

mov ah,09h lea dx,soobe_1 int 21h

call cursor

mov ah,09h lea dx,soob0_3 int 21h

call cursor

vvod_f2: mov ah,0ah lea dx,namepar int 21h

xor ax,ax

lea si,namefld mov al,[si] and al,00fh mov binval,ax

cmp binval,1 je jmp_ret2 cmp binval,2 je jmp_bg2 mov ah,09h

lea dx,soobl_err int 21h

call cursor jmp vvod_f2

jmp_ret2: jmp rt jmp_bg2: jmp bg

123

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

f3: ;b1 and b2

call clrscr call cursor

mov ah,09h lea dx,soobl_3 int 21h

call cursor

;b1

mov ah,09h lea dx,soob_b1 int 21h

mov ah,0ah

lea dx,namepar_b int 21h

call cursor

call ascii_binb

mov ax,binval_b mov b1,al

;b2

mov ah,09h lea dx,soob_b2 int 21h

mov ah,0ah

lea dx,namepar_b int 21h

call cursor

call ascii_binb

mov ax,binval_b mov b2,al

mov al,b1

124

and al,b2

mov word ptr rezult,ax mov word ptr rezult[2],0

call bin_bin

mov ah,09h lea dx,ascval int 21h

call cursor

mov ah,09h lea dx,soobe_1 int 21h

call cursor

mov ah,09h lea dx,soob0_3 int 21h

call cursor

vvod_f3: mov ah,0ah lea dx,namepar int 21h

xor ax,ax

lea si,namefld mov al,[si] and al,00fh mov binval,ax

cmp binval,1 je jmp_ret3 cmp binval,2 je jmp_bg3 mov ah,09h

lea dx,soobl_err int 21h

call cursor jmp vvod_f3

jmp_ret3: jmp rt jmp_bg3: jmp bg

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

125

f4:

;b1 and not(b2)

 

call clrscr

 

call cursor

 

mov ah,09h

 

lea dx,soobl_4

 

int 21h

 

call cursor

;b1

 

 

mov ah,09h

 

lea dx,soob_b1

 

int 21h

 

mov ah,0ah

 

lea dx,namepar_b

 

int 21h

 

call cursor

 

call ascii_binb

 

mov ax,binval_b

 

mov b1,al

;b2

 

 

mov ah,09h

 

lea dx,soob_b2

 

int 21h

 

mov ah,0ah

 

lea dx,namepar_b

 

int 21h

 

call cursor

 

call ascii_binb

 

mov ax,binval_b

 

mov b2,al

 

mov al,b1

 

not b2

 

and al,b2

126

mov word ptr rezult,ax mov word ptr rezult[2],0

call bin_bin

mov ah,09h lea dx,ascval int 21h

call cursor

mov ah,09h lea dx,soobe_1 int 21h

call cursor

mov ah,09h lea dx,soob0_3 int 21h

call cursor

vvod_f4: mov ah,0ah lea dx,namepar int 21h

xor ax,ax

lea si,namefld mov al,[si] and al,00fh mov binval,ax

cmp binval,1 je jmp_ret4 cmp binval,2 je jmp_bg4 mov ah,09h

lea dx,soobl_err int 21h

call cursor jmp vvod_f4

jmp_ret4: jmp rt jmp_bg4: jmp bg

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

f5:

;d1 and neg(d2)

127

call clrscr call cursor

mov ah,09h lea dx,soobl_5 int 21h

call cursor

;d1

mov ah,09h lea dx,soob_d1 int 21h

mov ah,0ah

lea dx,namepar_d int 21h

call cursor

call ascii_bind

mov ax,word ptr binval_d mov dx,word ptr binval_d+2 mov word ptr d1,ax

mov word ptr d1[2],dx

;d2

mov ah,09h lea dx,soob_d2 int 21h

mov ah,0ah

lea dx,namepar_d int 21h

call cursor

call ascii_bind

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

not ax not dx

128

add ax,1 adc dx,0

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

mov word ptr rezult[2],dx

call bin_bin

mov ah,09h lea dx,ascval int 21h

call cursor

mov ah,09h lea dx,soobe_1 int 21h

call cursor

mov ah,09h lea dx,soob0_3 int 21h

call cursor

vvod_f5: mov ah,0ah lea dx,namepar int 21h

xor ax,ax

lea si,namefld mov al,[si] and al,00fh mov binval,ax

cmp binval,1 je jmp_ret5 cmp binval,2 je jmp_bg5 mov ah,09h

lea dx,soobl_err int 21h

call cursor jmp vvod_f5

jmp_ret5: jmp rt

129

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

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

LEA

SI,NAMEFLD_w-1

; адрес ASCVAL

MOV

BL,FAKTLEN_w

; длина ASCVAL

MOV

BH,0

 

 

 

130

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