Guest User

Untitled

a guest
Jun 9th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. ; multi-segment executable file template.
  2.  
  3. data segment
  4. ; add your data here!
  5. sLogin db "User: $"
  6. sPassw db "Pass: $"
  7. dLogin db 5 dup(0)
  8. dPassw db 8 dup(0)
  9. ends
  10.  
  11. stack segment
  12. dw 128 dup(0)
  13. ends
  14.  
  15. code segment
  16. start:
  17. ; set segment registers:
  18. mov ax, data
  19. mov ds, ax
  20. mov es, ax
  21.  
  22. call INSUSER
  23. call INSPW
  24.  
  25.  
  26. lea dx, dLogin
  27. call STAMPMSG
  28.  
  29. ; wait for any key....
  30. mov ah, 1
  31. int 21h
  32.  
  33. mov ax, 4c00h ; exit to operating system.
  34. int 21h
  35. ends
  36.  
  37. INSUSER proc
  38. xor bx, bx
  39. lea dx, sLogin
  40. mov ah, 9
  41. int 21h
  42. mov ah, 1
  43. LOC_READCHAR:
  44. int 21h
  45. mov [dLogin+bx], al
  46. inc bx
  47. cmp bx, 5
  48. jne LOC_READCHAR
  49. ret
  50. INSUSER endp
  51.  
  52. INSPW proc
  53. ;
  54. ret
  55. INSPW endp
  56.  
  57. STAMPMSG proc
  58. ; Lista parametri:
  59. ; cx numero massimo di caratteri da stampare.
  60. ; Se viene raggiunto il tappo 00h, la stampa
  61. ; si conclude prima della fine di bx.
  62. ; dx indirizzo stringa da stampare
  63.  
  64. ;push ax
  65. ;push bx
  66. xor bx, bx
  67. mov ah, 2
  68. mov si, dx
  69. mov cx,5
  70.  
  71.  
  72. LOC_STAMPMSG_WRITECHAR:
  73. mov dl, [si+bx]
  74.  
  75. int 21h
  76. inc bx
  77. loop LOC_STAMPMSG_WRITECHAR
  78. LOC_STAMPMSG_END:
  79. ;pop bx
  80. ;pop ax
  81. ret
  82. STAMPMSG endp
  83.  
  84. end start ; set entry point and stop the assembler.
Add Comment
Please, Sign In to add comment