Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string db 'd', 'a', 'b', 'e', 'c', 0Dh, 0Ah, '$'
- string db 'e', 'c', 'b', 'd', 'a', 0Dh, 0Ah, '$'
- org 100h
- jmp main
- string db 'd', 'a', 'b', 'e', 'c', 0Dh, 0Ah, '$'
- length dw 3
- main:
- xor ax, ax
- xor bx, bx
- xor dx, dx
- xor cx, cx
- xor si, si
- xor bp, bp
- lea bx, string
- mov ax, bx
- print "Before string: "
- call print_ax_str
- lea ax, [bx]
- push ax
- lea ax, [bx + 3]
- push ax
- call swap ;swap the chars.
- lea ax, string
- print "After string: "
- call print_ax_str
- jmp end
- swap:
- printn "swap!"
- push cx
- push bx
- push dx
- push ax
- push bp
- mov bp, sp
- mov ax, [bp + 12]; ax = ptr char 2
- mov cx, [bp + 14]; cx = ptr char 1
- mov bx, ax
- mov ax, [bx] ;ax = char 2
- mov bx, cx
- mov dx, [bx] ;dx = char 1
- mov [bx], ax ;char 1 = char 2
- mov bx, [bp + 12]
- mov [bx], dx ;char 2 = char 1
- mov ax, [bx]
- mov sp, bp
- pop bp
- pop ax
- pop dx
- pop bx
- pop cx
- retn 4
- end:
- mov ah, 0
- int 16h
- ret
- include prints.inc
Add Comment
Please, Sign In to add comment