;======================= перевод из 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 |