Определить, является ли треугольник из отрезков с длинами A, B и C прямоугольным или равносторонним - Assembler
Формулировка задачи:
Заданы три положительных числа A, B и C (A>=B> =C). Определить, является ли треугольник из отрезков с длинами A, B и C прямоугольным или равносторонним. Вывести «прямоугольный", "-равносторонний», в остальных случаях вывести -" Нет".
вот попытался написать прогу второе условие где прямоугольный не выполняется
Листинг программы
- include mac.lib
- .model small
- .stack 100h
- .data
- input_a db 10,13, 'a= $', 0
- input_b db 10,13, 'b= $', 0
- input_c db 10,13, 'c= $', 0
- oute1 db 10,13, 'not$'
- oute2 db 10,13, 'ravnostoronyi$'
- oute3 db 10,13, 'pramougolnyi$'
- a dw ?
- b dw ?
- c dw ?
- .code
- start:
- mov ax, @data
- mov ds, ax
- message input_a
- key_$2bin
- mov a, AX
- message input_b
- key_$2bin
- mov b, AX
- message input_c
- key_$2bin
- mov c, AX
- mov AX, a
- cmp ax, c
- JE out3 ;a=b
- JG out1 ;a>m
- mov AX, b
- cmp ax, c
- JL out1 ;a>m
- JE out3 ;b=c
- message oute2
- jmp exsit
- out1:
- message oute1
- out3:
- message oute3
- exsit :
- mov ax, 4c00h
- int 21h
- end start
Решение задачи: «Определить, является ли треугольник из отрезков с длинами A, B и C прямоугольным или равносторонним»
textual
Листинг программы
- org 100h
- jmp start
- mess db 13,10,'Input A: $'
- out1 db 13,10,'<---Ravnobedr!$'
- out2 db 13,10,'<---Pramougol!$'
- out3 db 13,10,'<---Error!$'
- abc db 3 dup(0)
- start:
- mov cx,3 ; цикл в 3 символа
- mov di,abc ; куда сохранять
- input: ;
- mov ah,9 ;
- mov dx,mess ;
- int 21h ;
- mov ah,1 ; ввод с эхом
- int 21h ;
- stosb ; сохраняем символ
- inc byte[mess+8] ; сл.буква в имени (A,B,C)
- loop input ;
- ;---------------------------------------------------
- mov si,abc ; берём значения в регистры
- lodsw ; bl = A
- xchg ax,bx ; bh = B
- lodsb ; al = C
- ;---------------------------------------------------;
- cmp bl,bh ; A = B ?
- jnz @1 ; нет
- cmp bh,al ; B > C ?
- jbe @1 ; нет
- mov dx,out2 ; адрес "прямоугольный"
- jmp print ; выводи мессагу на экран!
- @1:
- cmp bl,bh ; A > B ?
- jbe @2 ; нет
- cmp bh,al ; B = C ?
- jnz @2 ; нет
- mov dx,out2 ; адрес "прямоугольный"
- jmp print ; выводи мессагу на экран!
- @2:
- cmp bl,bh ; A = B ?
- jnz @3 ;
- cmp bh,al ; B = C ?
- jnz @3
- mov dx,out1 ; адрес "равнобедренный"
- jmp print ; выводи мессагу на экран!
- @3:
- mov dx,out3 ; ошибка!
- print: ;
- mov ah,9 ; выводим мессагу на экран!
- int 21h ;
- ;-----------------------------------------------------;
- xor ax,ax ;
- int 16h ;
- ret ; выход..
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д