Материал: 775

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

 

loop clr1

 

ret clrascval endp

;********************************************************************* bin_ascii proc

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

xor bx,bx mov ten,0

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

met1: cmp dx,0 jne met5 cmp ax,10 jbe met2

met5: sub ax,10 sbb dx,0 add bx,1 adc cx,0 jmp met1

met2: add al,ten mov ten,0 cmp al,10 je met2_1 jmp met2_2

met2_1: mov al,0 inc ten

met2_2: or al,30h mov [si],al

dec si cmp cx,0 je met3 jmp met4

116

met3: cmp bx,0 jne met4 ret

met4: mov ax,bx mov dx,cx xor bx,bx xor cx,cx jmp met1

bin_ascii 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

117

metb4: mov ax,bx mov dx,cx xor bx,bx xor cx,cx jmp metb1

bin_bin endp ;*******************************************************

CODESG ENDS

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

END begin

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

==================================================================

=

;l_2_2kln.asm КАЛИНИН МИХАИЛ, БИ11, 2004г. (лабораторная работа №2, модуль 2)

extrn soobe_1:byte,soobe_2:byte,soob0_err:byte,soob_b1:byte,soob_b2:byte,soob_d1:byte,soo b_d2:byte,b1:byte,b2:byte,d1:dword,d2:dword

extrn binval_d:dword,binval:word,binval_b:word,binval_w:word extrn mult10:word,rezult:dword,ten:byte,ascval:byte,num_ln:byte extrn

soob0_3:byte,soobl_err:byte,soobl:byte,soobl_1:byte,soobl_2:byte,soobl_3:byte,soobl_4: byte,soobl_5:byte,soobl_n1:byte,soobl_n2:byte,soobl_n3:byte,soobl_n4:byte,soobl_n5:by te

extrn namepar_b:byte,maxlen_b:byte,faktlen_b:byte,namefld_b:byte,namepar_w:byte,maxle n_w:byte,faktlen_w:byte,namefld_w:byte,namepar_d:byte,maxlen_d:byte,faktlen_d:byt e,namefld_d:byte,namepar:byte,maxlen:byte,faktlen:byte,namefld:byte

public main

CODESEG SEGMENT PARA 'CODE'

;начало сегмента кода

assume cs:codeseg

 

 

MAIN PROC FAR

 

;начало основной процедуры

bg:

call clrscr

 

 

 

call cursor

;вызов процедуры перевода курсора

 

mov ah,09h

;функция вывода на экран

 

lea dx,soobl

;загрузить адрес начала сообщения в dx

 

int 21h

;передача управления в DOS

 

call cursor

;вызов процедуры перевода курсора

 

mov ah,09h

;функция вывода на экран

 

lea dx,soobl_n1

;загрузить адрес начала сообщения в dx

 

int 21h

;передача управления в DOS

 

call cursor

;вызов процедуры перевода курсора

 

mov ah,09h

;функция вывода на экран

 

 

 

118

lea dx,soobl_n2

;загрузить адрес начала сообщения в dx

int 21h

 

;передача управления в DOS

call cursor

;вызов процедуры перевода курсора

mov ah,09h

;функция вывода на экран

lea dx,soobl_n3

;загрузить адрес начала сообщения в dx

int 21h

 

;передача управления в DOS

call cursor

;вызов процедуры перевода курсора

mov ah,09h

;функция вывода на экран

lea dx,soobl_n4

;загрузить адрес начала сообщения в dx

int 21h

 

;передача управления в DOS

call cursor

;вызов процедуры перевода курсора

mov ah,09h

;функция вывода на экран

lea dx,soobl_n5

;загрузить адрес начала сообщения в dx

int 21h

 

;передача управления в DOS

call cursor

;вызов процедуры перевода курсора

vvod_l:

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 f1

cmp binval,2 je jmp_f2 cmp binval,3 je jmp_f3 cmp binval,4 je jmp_f4 cmp binval,5 je jmp_f5 mov ah,09h

lea dx,soobl_err int 21h

call cursor jmp vvod_l

119

jmp_f2:

jmp f2

jmp_f3:

jmp f3

jmp_f4:

jmp f4

jmp_f5:

jmp f5

;================================================================ f1: ;b1 or b2

call clrscr call cursor

mov ah,09h lea dx,soobl_1 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

120

Источник: https://studfile.net/preview/16406832/