Определить, является ли треугольник из отрезков с длинами A, B и C прямоугольным или равносторонним - Assembler

Узнай цену своей работы

Формулировка задачи:

Заданы три положительных числа A, B и C (A>=B> =C). Определить, является ли треугольник из отрезков с длинами A, B и C прямоугольным или равносторонним. Вывести «прямоугольный", "-равносторонний», в остальных случаях вывести -" Нет".
вот попытался написать прогу второе условие где прямоугольный не выполняется
Листинг программы
  1. include mac.lib
  2. .model small
  3. .stack 100h
  4. .data
  5. input_a db 10,13, 'a= $', 0
  6. input_b db 10,13, 'b= $', 0
  7. input_c db 10,13, 'c= $', 0
  8. oute1 db 10,13, 'not$'
  9. oute2 db 10,13, 'ravnostoronyi$'
  10. oute3 db 10,13, 'pramougolnyi$'
  11. a dw ?
  12. b dw ?
  13. c dw ?
  14. .code
  15. start:
  16. mov ax, @data
  17. mov ds, ax
  18. message input_a
  19. key_$2bin
  20. mov a, AX
  21. message input_b
  22. key_$2bin
  23. mov b, AX
  24. message input_c
  25. key_$2bin
  26. mov c, AX
  27. mov AX, a
  28. cmp ax, c
  29. JE out3 ;a=b
  30. JG out1 ;a>m
  31. mov AX, b
  32. cmp ax, c
  33. JL out1 ;a>m
  34. JE out3 ;b=c
  35. message oute2
  36. jmp exsit
  37. out1:
  38. message oute1
  39. out3:
  40. message oute3
  41. exsit :
  42. mov ax, 4c00h
  43. int 21h
  44. end start

Решение задачи: «Определить, является ли треугольник из отрезков с длинами A, B и C прямоугольным или равносторонним»

textual
Листинг программы
  1. org 100h
  2. jmp  start
  3.  
  4. mess   db  13,10,'Input A: $'
  5. out1   db  13,10,'<---Ravnobedr!$'
  6. out2   db  13,10,'<---Pramougol!$'
  7. out3   db  13,10,'<---Error!$'
  8. abc    db  3 dup(0)
  9.  
  10. start:
  11.     mov   cx,3           ; цикл в 3 символа
  12.     mov   di,abc         ; куда сохранять
  13. input:                   ;
  14.     mov   ah,9           ;
  15.     mov   dx,mess        ;
  16.     int   21h            ;
  17.     mov   ah,1           ; ввод с эхом
  18.     int   21h            ;
  19.     stosb                ; сохраняем символ
  20.     inc   byte[mess+8]   ; сл.буква в имени (A,B,C)
  21.     loop  input          ;
  22. ;---------------------------------------------------
  23.     mov   si,abc         ; берём значения в регистры
  24.     lodsw                ; bl = A
  25.     xchg  ax,bx          ; bh = B
  26.     lodsb                ; al = C
  27. ;---------------------------------------------------;
  28.     cmp   bl,bh          ; A = B ?
  29.     jnz   @1             ; нет
  30.     cmp   bh,al          ; B > C ?
  31.     jbe   @1             ; нет
  32.     mov   dx,out2        ; адрес "прямоугольный"
  33.     jmp   print          ; выводи мессагу на экран!
  34. @1:
  35.     cmp   bl,bh          ; A > B ?
  36.     jbe   @2             ; нет
  37.     cmp   bh,al          ; B = C ?
  38.     jnz   @2             ; нет
  39.     mov   dx,out2        ; адрес "прямоугольный"
  40.     jmp   print          ; выводи мессагу на экран!
  41. @2:
  42.     cmp   bl,bh          ; A = B ?
  43.     jnz   @3             ;
  44.     cmp   bh,al          ; B = C ?
  45.     jnz   @3
  46.     mov   dx,out1        ; адрес "равнобедренный"
  47.     jmp   print          ; выводи мессагу на экран!
  48. @3:
  49.     mov   dx,out3        ; ошибка!
  50. print:                   ;
  51.     mov   ah,9           ; выводим мессагу на экран!
  52.     int   21h            ;
  53. ;-----------------------------------------------------;
  54.     xor   ax,ax          ;
  55.     int   16h            ;
  56.     ret                  ; выход..

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы