123456789101112131415161718192021222324252627282930313233 |
- .sect .text; .sect .rom; .sect .data; .sect .bss
- .sect .text
- .define .sar2
- .sar2:
- ! bx, descriptor address
- ! ax, index
- pop cx
- pop dx ! base address
- push cx
- xchg di,dx ! di = base address, dx is saved di
- sub ax,(bx)
- mov cx,4(bx)
- push dx
- imul cx
- pop dx
- add di,ax
- sar cx,1
- jnb 1f
- pop bx
- pop ax
- stosb
- mov di,dx
- jmp bx
- 1:
- pop bx
- mov ax,si
- mov si,sp
- rep movs
- mov sp,si
- mov si,ax
- mov di,dx
- jmp bx
|