Advertisement
alexx876

Untitled

Nov 23rd, 2018
510
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
Advertisement