.model small
0000 .data
0000 49 6E 20 64 61 74 msg db "In data segment",0dh,0ah,"$"
61 20 73 65 67 6D
65 6E 74 0D 0A 24
.stack 100h
0000 .code
0000 main proc
0000 B8 ---- R mov ax,@data
0003 8E D8 mov ds,ax
0005 B8 0000 top: mov ax,0
0008 83 C0 01 add ax,1
000B 74 F8 jz top ;000D + FFF8 = 0005
000D 0E E8 0090 call farproc ;0011 + 0090 = 00A1
0011 E8 0095 call nearproc ;0014 + 0095 = 00A9
0014 EB 7F jmp short_next ;0016 + 007F = 0095
0016 E9 0082 jmp near_next ;0019 + 0082 = 009B
0019 EB EA jmp top ;001B + FFEA = 0005
001B EA ---- 00A1 R jmp far ptr farproc ;00A1 is the offset
0020 B8 0001 mov ax,1
0023 B8 0001 mov ax,1
... ...
008F B8 0001 mov ax,1
0092 B8 0001 mov ax,1
0095 short_next:
0095 B8 0001 mov ax,1
0098 B8 0001 mov ax,1
009B near_next:
009B B8 4C00 mov ax,4c00h
009E CD 21 int 21h
00A0 C3 ret
00A1 main endp
00A1 farproc proc far
00A1 B4 09 mov ah,09h
00A3 BA 0000 R mov dx,offset msg
00A6 CD 21 int 21h
00A8 CB ret
00A9 farproc endp
00A9 nearproc proc
00A9 B4 09 mov ah,09h
00AB BA 0000 R mov dx,offset msg
00AE CD 21 int 21h
00B0 C3 ret
00B1 nearproc endp
end main