Advertisement
Guest User

Untitled

a guest
Feb 27th, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. stk segment stack
  2.     db 128 DUP(?)
  3. tos label word
  4. stk ends
  5. ;
  6. data segment
  7.     array db 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
  8.     len equ $ - array
  9.     messageNumEle db "Number of element = $"
  10.     messageEle db "Elements are : $"
  11.    
  12. data ends
  13. ;
  14. code segment
  15. assume cs:code, ss:stk, ds:data
  16. ;
  17. start:
  18. ;Macros
  19. printLn MACRO
  20.     mov dl, 0ah
  21.     mov ah, 2
  22.     int 21h
  23. endm
  24.  
  25. printMessage MACRO param
  26.     mov dx, offset param
  27.     mov ah, 9
  28.     int 21h
  29. endm
  30.  
  31. printRegister MACRO param
  32.     mov dl, param
  33.     add dl, 30h
  34.     mov ah,2
  35.     int 21h
  36. endm
  37. ;End of macros
  38.  
  39. ;Main
  40.     mov ax, stk         ;   initialize stack
  41.     mov ss, ax         
  42.     mov sp, offset tos  ;   end of stack initialization
  43.     mov ax, data        ;   initialize data segment
  44.     mov ds, ax          ;   end of data initialization
  45.    
  46.     printMessage messageNumEle
  47.  
  48.     mov ax, len         ;store length for division
  49.     mov dx, 0           ;clear dx which is used to store remainder
  50.     mov bx, 10d         ;mov 10 to bx used for division
  51.     div bx              ;divide ax by bx(10)
  52.     mov cx, dx
  53.     printRegister al
  54.     printRegister dl
  55.    
  56. ;Exit
  57. exit:
  58.     mov ah,4ch
  59.     int 21h
  60. code ends
  61. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement