Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; multi-segment executable file template.
- data segment
- ; add your data here!
- sLogin db "User: $"
- sPassw db "Pass: $"
- dLogin db 5 dup(0)
- dPassw db 8 dup(0)
- ends
- stack segment
- dw 128 dup(0)
- ends
- code segment
- start:
- ; set segment registers:
- mov ax, data
- mov ds, ax
- mov es, ax
- call INSUSER
- call INSPW
- lea dx, dLogin
- call STAMPMSG
- ; wait for any key....
- mov ah, 1
- int 21h
- mov ax, 4c00h ; exit to operating system.
- int 21h
- ends
- INSUSER proc
- xor bx, bx
- lea dx, sLogin
- mov ah, 9
- int 21h
- mov ah, 1
- LOC_READCHAR:
- int 21h
- mov [dLogin+bx], al
- inc bx
- cmp bx, 5
- jne LOC_READCHAR
- ret
- INSUSER endp
- INSPW proc
- ;
- ret
- INSPW endp
- STAMPMSG proc
- ; Lista parametri:
- ; cx numero massimo di caratteri da stampare.
- ; Se viene raggiunto il tappo 00h, la stampa
- ; si conclude prima della fine di bx.
- ; dx indirizzo stringa da stampare
- ;push ax
- ;push bx
- xor bx, bx
- mov ah, 2
- mov si, dx
- mov cx,5
- LOC_STAMPMSG_WRITECHAR:
- mov dl, [si+bx]
- int 21h
- inc bx
- loop LOC_STAMPMSG_WRITECHAR
- LOC_STAMPMSG_END:
- ;pop bx
- ;pop ax
- ret
- STAMPMSG endp
- end start ; set entry point and stop the assembler.
Add Comment
Please, Sign In to add comment