Материал: 775

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

;======================= перевод из ASCII в bin числа w2 ==================

lw2: mov ah,09h ;вывод на экран сообщения 'w2=' lea dx,soob_w2

int 21h

mov ah,0ah

;ввод с клавиатуры w2

lea dx,namepar_w

 

int 21h

 

call symbol_w

 

mov al,err

 

cbw

 

jns lw2

 

call ASCII_binw

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

xor ax,ax

;ax=0

mov ax,binval_w

;поместить в ax число w2

mov w2,ax

;поместить в переменную w2 введенное значение

call cursor

 

xor ax,ax

 

mov ax,w2

; поместить в ax число w2

cmp ax,32767

; сравнение числа w2 с 32767

ja ew2

; если w2>32767, то на метку ew2

xor ax,ax

 

jmp ld1

; если w2<=32767, то на метку ld1

ew2: mov ah,09h

; сообщение об ошибке

lea dx,soob_error_w

 

int 21h

 

call cursor

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

jmp lw2

; переход на метку lw2

;======================= перевод из ASCII в bin числа d1 ==================

ld1: mov ah,09h ; вывод на экран сообщения 'd1=' lea dx,soob_d1

int 21h

mov ah,0ah

; ввод с клавиатуры d1

lea dx,namepar_d

 

int 21h

 

call symbol_d

 

 

106

mov al,err cbw

jns ld1

call ASCII_bind

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

xor ax,ax

; переносим переведённый байт в d1

xor dx,dx

 

mov ax,word ptr binval_d

 

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

mov word ptr d1+2,dx

call cursor

 

cmp dx,21474

; dx сравниваем с 21474

ja ed1

; если >, то на метку ed1

xor dx,dx

 

jmp lb1

 

ed1: mov ah,09h

;сообщение об ошибке

lea dx,soob_error_d

 

int 21h

 

call cursor

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

jmp ld1

;переход на метку ld1

;======================= перевод из ASCII в bin числа b1 ==================

lb1: mov ah,09h ;вывод на экран сообщения 'b1=' lea dx,soob_b1

int 21h

mov ah,0ah

;ввод с клавиатуры b1

lea dx,namepar_b

 

int 21h

 

call symbol_b

 

mov al,err

 

cbw

 

jns lb1

 

call ASCII_binb

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

xor ax,ax

;ax=0

mov ax,binval_b

;поместить в al число b1

mov b1,al

;поместить в переменную b1 введенное значение

call cursor

 

 

107

 

xor ax,ax

 

 

mov al,b1

;поместить в al число b1

 

cbw

 

 

cmp ax,127

;сравнение числа b1 с 127

 

ja eb1

;если b1>127, то на метку eb1

 

cmp ax,0

 

 

je e2b1

 

 

xor ax,ax

 

 

jmp lw3

;если b1<=127, то на метку lw3

e2b1:

mov ah,09h

 

 

lea dx,soob_error_b1

 

 

int 21h

 

 

call cursor

 

 

jmp lb1

 

eb1:

mov ah,09h

;сообщение об ошибке

 

lea dx,soob_error_b

 

 

int 21h

 

 

call cursor

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

 

jmp lb1

;переход на метку lb1

;======================= перевод из ASCII в bin числа w3 ==================

lw3: mov ah,09h ;вывод на экран сообщения 'w3=' lea dx,soob_w3

int 21h

mov ah,0ah

;ввод с клавиатуры w3

lea dx,namepar_w

 

int 21h

 

call symbol_w

 

mov al,err

 

cbw

 

jns lw3

 

call ASCII_binw

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

xor ax,ax

;ax=0

mov ax,binval_w

;поместить в ax число w3

mov w3,ax

;поместить в переменную w3 введенное значение

call cursor

 

xor ax,ax

 

mov ax,w3

;поместить в ax число w3

 

108

cmp ax,32767

;сравнение числа w3 с 32767

ja ew3

;если w2>32767, то на метку ew3

xor ax,ax

 

jmp lb2

;если w2<=32767, то на метку lb2

ew3: mov ah,09h

;сообщение об ошибке

lea dx,soob_error_w

 

int 21h

 

call cursor

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

jmp lw3

;переход на метку lw3

;======================= перевод из ASCII в bin числа b2 ==================

lb2: mov ah,09h ;вывод на экран сообщения 'b2=' lea dx,soob_b2

int 21h

mov ah,0ah

;ввод с клавиатуры b2

lea dx,namepar_b

 

int 21h

 

call symbol_b

 

mov al,err

 

cbw

 

jns lb2

 

call ASCII_binb

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

xor ax,ax

;ax=0

mov ax,binval_b

;поместить в al число b2

mov b2,al

;поместить в переменную b2 число b2

call cursor

 

xor ax,ax

 

mov al,b2

;поместить в al число b2

cbw

 

cmp ax,127

;сравнение числа b2 с 127

ja eb2

;если b2>127, то на метку eb2

xor ax,ax

 

jmp lb3

;если b2<=127, то на метку lb3

eb2: mov ah,09h

;сообщение об ошибке

lea dx,soob_error_b

 

int 21h

 

call cursor

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

jmp lb2

;переход на метку lb2

 

109

;======================= перевод из ASCII в bin числа b3 ==================

lb3: mov ah,09h ;вывод на экран сообщения 'b3=' lea dx,soob_b3

int 21h

 

mov ah,0ah

;ввод с клавиатуры b3

 

lea dx,namepar_b

 

 

 

int 21h

 

 

 

call symbol_b

 

 

 

mov al,err

 

 

 

cbw

 

 

 

jns lb3

 

 

 

call ASCII_binb

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

 

xor ax,ax

;ax=0

 

 

mov ax,binval_b

;поместить в al число b3

 

mov b3,al

;поместить в переменную b3 число b3

 

call cursor

 

 

 

xor ax,ax

 

 

 

mov al,b3

;поместить в al число b3

 

cbw

 

 

 

cmp ax,127

;сравнение числа b3 с 127

 

ja eb3

;если b3>127, то на метку eb3

 

xor ax,ax

 

 

 

jmp form

;если b3<=127, то на метку form

eb3:

mov ah,09h

;сообщение об ошибке

 

lea dx,soob_error_b

 

 

 

int 21h

 

 

 

call cursor

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

 

jmp lb3

;переход на метку lb3

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

;

w1*w2+d1/b1-(w3+b2+b3)

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

form:

xor ax,ax

 

 

 

xor bx,bx

 

 

 

xor cx,cx

 

 

 

xor dx,dx

 

 

 

mov ax,w1

 

;ax:=w1

 

mul w2

 

;ax:=w1*w2

 

mov word ptr rez_1,ax

;rez_1:=w1*w2

 

mov word ptr rez_1[2],dx

 

 

 

 

110

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