Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; multi-segment executable file template.
- data segment
- ; add your data here!
- A DB 1,1,0,1,1,1,0,0
- B DB 1,1,1,1,1,1,1,0
- C DB 1,0,0,1,0,0,0,0
- D DB 10 DUP ('A')
- ends
- stack segment
- dw 128 dup(0)
- ends
- code segment
- start:
- ; set segment registers:
- mov ax, data
- mov ds, ax
- mov es, ax
- ; add your code here
- lea si, A
- mov ax, 0
- call ArrIntoByte
- mov bx, ax
- lea si, B
- mov ax, 0
- call ArrIntoByte
- add bx, ax
- lea si, C
- mov ax, 0
- call ArrIntoByte
- add bx, ax
- mov cx, 10
- mov ax, 1
- lea si, D
- rol ax, 9
- intoD:
- push bx
- and bx, ax
- jz zero
- one:
- mov [si], 1
- jmp changed
- zero:
- mov [si], 0
- changed:
- pop bx
- shr ax, 1
- inc si
- loop intoD
- ends
- ArrIntoByte PROC
- push cx
- mov cx, 8
- putInAL:
- or al, [si]
- inc si
- rol al, 1
- loop putInAL
- ror al, 1
- pop cx
- ret
- ArrIntoByte ENDP
- end start ; set entry point and stop the assembler.
Advertisement
Add Comment
Please, Sign In to add comment