alexx876

Untitled

Nov 23rd, 2018
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .386
  3. .stack 256h
  4. .data
  5. ;здесь окажется сумма чисел в символьном виде, чтобы вывести её на экран
  6. outp db 3 dup('$')
  7. .code
  8. start:
  9.  
  10. mov ax, @data
  11. mov ds, ax
  12. ;http://calculatori.ru/perevod-chisel.html
  13. mov ax, 1747o ;помещаем в ax трёхзначное число
  14. mov cx, 10  ;делитель
  15.  
  16. xor bx, bx
  17.  
  18.  
  19. Calc PROC
  20.     deep_in:
  21.  
  22.     cmp ax,0
  23.  
  24.     jz exit
  25.  
  26.     inc bx
  27.     cwd ; Команда CWD копирует значение старшего бита
  28.     ; регистра АХ на все биты регистра DX. Без неё нормально не
  29.     ; поделишь.
  30.     div cx  ;разделить ax на 10
  31.     add si, dx  ;поместить в si остаток от деления
  32.  
  33.     jmp deep_in
  34. ret
  35. MyProc ENDP
  36.  
  37.  
  38. call Calc
  39.  
  40.  
  41. ;-------------------------------------------------
  42.  
  43. exit:
  44. mov ax, si  ;прибавляем последнюю цифру к сумме первых двух
  45. aam ;корректировка
  46. add ah,30h  ;преобразование в символьный вид для вывода
  47. add al,30h
  48. mov [outp], ah  ;помещаем в переменную
  49. mov [outp+1], al
  50. lea dx,outp ;выводим на экран
  51. mov ah, 09h
  52. int 21h
  53.  
  54. mov ah, 4ch
  55. int 21h
  56. end start
Advertisement
Add Comment
Please, Sign In to add comment