123456789101112131415161718192021222324252627282930313233 |
- .sect .text; .sect .rom; .sect .data; .sect .bss
- .sect .text
- .define .sar4
- .sar4:
- ! ebx, descriptor address
- ! eax, index
- sub eax,(ebx)
- mov ecx,8(ebx)
- imul ecx
- pop ebx
- pop edx ! base address
- add edx,eax
- sar ecx,1
- jnb 1f
- pop eax
- movb (edx),al
- jmp ebx
- 1:
- sar ecx,1
- jnb 1f
- pop eax
- o16 mov (edx),ax
- jmp ebx
- 1:
- xchg edi,edx ! edi = base address, edx is saved edi
- mov eax,esi
- mov esi,esp
- rep movs
- mov esp,esi
- mov esi,eax
- mov edi,edx
- jmp ebx
|