Определить, является ли треугольник из отрезков с длинами 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 ; выход..
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д