Деление чисел и их последующий вывод - Assembler

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

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

Задание такое: Вводиться число, если больше 0 то выполняем x2\ (c+d), меньше x(c+5), равно 0 то (2b-d)\2a. По алгоритму вроде правильно но беда при выводе, где в уравнении было деление. И еще(другое задание), В числе Х найти вторую по величине цифру, если в числе могут быть одинаковые цифры. У меня беда с разделение числа по цифрам, div есть, но привычного mod нету, первую цифру вроде бы отделил,а с последующими косяк. Помогите советами) Спасибо! Z1
Листинг программы
  1. include emu8086.inc
  2. ; multi-segment executable file template.
  3. data segment
  4. a db 5
  5. b db -6
  6. c db 2
  7. d db 1 \
  8. x dw ?
  9. pkey db "press any key...$"
  10. ends
  11. stack segment
  12. dw 128 dup(0)
  13. ends
  14. code segment
  15. start:
  16. ; set segment registers:
  17. mov ax, data
  18. mov ds, ax
  19. mov es, ax
  20. call SCAN_NUM
  21. mov x,cx
  22. xor ax,ax
  23. l1: cmp x,0
  24. jnz m1
  25. mov al,b
  26. add al,al
  27. sub al,d
  28. mov bl,a
  29. add bl,bl
  30. div bl
  31. jmp l
  32. M1: cmp x,0
  33. jns M2
  34. mov al,c
  35. add al,5
  36. mul x
  37. jmp L
  38. m2: mov ax,x
  39. mul x
  40. mov bl,c
  41. add bl,d
  42. div bl
  43. L: CALL pthis
  44. DB 13, 10, 'Otvet: ', 0
  45. CALL PRINT_NUM
  46.  
  47. ; wait for any key....
  48. mov ah, 1
  49. int 21h
  50. mov ax, 4c00h ; exit to operating system.
  51. int 21h
  52. ends
  53. DEFINE_SCAN_NUM
  54. DEFINE_PRINT_STRING
  55. DEFINE_PRINT_NUM
  56. DEFINE_PRINT_NUM_UNS ;
  57. DEFINE_PTHIS
  58. end start ; set entry point and stop the assembler.
Z2
Листинг программы
  1. ; multi-segment executable file template.
  2. data segment
  3. x1 db ?
  4. x2 db ?
  5. x3 db ?
  6. x4 db ?
  7. pkey db "press any key...$"
  8. ends
  9. stack segment
  10. dw 128 dup(0)
  11. ends
  12. code segment
  13. start:
  14. ; set segment registers:
  15. mov ax, data
  16. mov ds, ax
  17. mov es, ax
  18. mov ax,0FCD7h
  19. mov di,ax
  20. mov bx,10
  21. div bx
  22. mov x1,dl
  23.  
  24. lea dx, pkey
  25. mov ah, 9
  26. int 21h ; output string at ds:dx
  27. ; wait for any key....
  28. mov ah, 1
  29. int 21h
  30. mov ax, 4c00h ; exit to operating system.
  31. int 21h
  32. ends
  33. end start ; set entry point and stop the assembler.

Решение задачи: «Деление чисел и их последующий вывод»

textual
Листинг программы
  1.     mov ax,0FCD7h
  2.     mov bx,10
  3.     lea di,x0
  4. @@01:   xor dx,dx
  5.     div bx
  6.     mov [di],dl
  7.     inc di
  8.     or  ax,ax
  9.     jnz @@01

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


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

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

13   голосов , оценка 4.077 из 5

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

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

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