Advertisement
Guest User

Untitled

a guest
Dec 25th, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. STACKSG SEGMENT PARA STACK
  2. DB 64 DUP(?)
  3. STACKSG ENDS
  4. DATASG SEGMENT PARA 'DATA'
  5. cnum db 6,8 DUP(' ');число в ASCII-коде
  6. LENSTR EQU $-CNUM ;кол-во цифр числа
  7. bnum Dw 0 ;двоичное число
  8. K DW 1 ;Переменный множитель
  9. K10 DW 10 ;Постоянный множитель
  10. CHISLO DB 0ah,0dh,"(X/2)+(X*3)-500=",8 DUP(' ')
  11. GREET db "please enter x [150:22500]",0AH,0DH,"X=",'$'
  12. DATASG ENDS
  13. CODESG SEGMENT PARA 'CODE'
  14. ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
  15. ENTRY PROC FAR
  16. ; стандартная часть
  17. PUSH DS
  18. SUB AX,AX
  19. PUSH AX
  20. MOV AX,DATASG
  21. MOV DS,AX
  22. MOV AH,09 ;Вывести приглашение
  23. LEA DX,GREET
  24. INT 21H
  25. MOV AH,10 ;Ввод числа
  26. LEA DX,CNUM
  27. INT 21H
  28. xor cx,cx; очистка регистра
  29. MOV CL,CNUM+1 ; CX=количество цифр
  30. MOV SI,CX ; SI=индекс разряда числа
  31. inc si
  32. CIKL: MOV AL,CNUM[SI] ; AL=Цифра, читаем с младших разрядов
  33. AND AX,000Fh ; Перевод из ASCII в двоичный как в 3 лабе
  34. MUL K ; (DX,AX)=AX*K, DX=0
  35. ADD BNUM,AX ; BNUM=BNUM+AX
  36. MOV AX,K
  37. MUL K10
  38. MOV K,AX ;K=K*10
  39. DEC SI
  40. LOOP CIKL
  41.     MOV AX,BNUM ; Подсчет
  42.     mov cx, 7
  43.     mul cx
  44.     mov cx, 2
  45.     div cx
  46.     sub ax, 500
  47.     mov cx, 10
  48.     xor dx, dx
  49. cikl2:;Перевести во внешнее представление как в 3 лабе
  50. div cx
  51. add dl,30h
  52. push dx
  53. xor dx,dx
  54. inc bx ;счетчик кол-ва цифр в выходной строке
  55. cmp ax,0h
  56. jne cikl2
  57. xor si,si
  58. mov cx,bx
  59. mov si,22; для учета префикса
  60. cikl3: ;Формирование выходной строки
  61. pop dx
  62. mov chislo[si],dl
  63. inc si
  64. loop cikl3
  65. mov chislo[si],'$'
  66. MOV Ah,09h;Вывод ответа
  67. LEA DX,chislo
  68. SUB BX,BX
  69. MOV BL,5
  70. INT 21H
  71. MOV AH,10;pause
  72. xor dx,dx
  73. INT 21H
  74. RET
  75. ENTRY ENDP
  76. CODESG ENDS
  77. END ENTRY
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement