page , 132 name programmingJoke .186 Code segment public 'code' assume Cs:Code, Ds:Code org 100h startHere: jmp doTheWork printStrFrame struc printStr_OldFrame Dw ? printStr_RtnAddr Dw ? printStr_StringPtrOffset Dw ? printStrFrame ends printStringAsciiZ proc near push Bp mov Bp, Sp push Ds mov Dx, [Bp].printStr_StringPtrOffset mov Ah, 9 int 21h pop Ds pop Bp ret printStringAsciiZ endp StringToWrite Db 'Good Morning, Bob.', 0dh, 0ah, '$' doTheWork: push Cs pop Ds mov Cx, 500 WriteAgain: push Cx mov Bx, offset StringToWrite push Bx call PrintStringAsciiZ add Sp, 2 pop Cx loop WriteAgain xor Ax, Ax mov ax, 4c00h int 21h Code ends end startHere