История изменений
Исправление Tinker, (текущая версия) :
[code] start: R(STI); // 12 sti R(CLD); // 13 cld R(PUSH(seg_offset(_data))); // 14 push _data R(POP(ds)); // 15 pop ds R(MOV(ah, 9)); // 16 mov ah,9 R(MOV(dx, offset(_data,_msg))); // 17 mov dx,offset _msg R(_INT(0x21)); // 18 int 21h R(MOV(ax, 0x4c00)); // 20 mov ax,4c00h R(_INT(0x21)); // 21 int 21h
struct Memory m = { {0}, // padding {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, // segment _data {‘H’,‘e’,‘l’,‘l’,‘o’,’ ‘,‘W’,‘o’,‘r’,‘l’,‘d’,’!‘,’\n’,‘\r’,‘$’}, // _msg … [code]
речь идет о подобном коде? Если да, то главный плюс то, что код собирается и его можно отлаживать.
Исходная версия Tinker, :
[code] start: R(STI); // 12 sti R(CLD); // 13 cld R(PUSH(seg_offset(_data))); // 14 push _data R(POP(ds)); // 15 pop ds R(MOV(ah, 9)); // 16 mov ah,9 R(MOV(dx, offset(_data,_msg))); // 17 mov dx,offset _msg R(_INT(0x21)); // 18 int 21h R(MOV(ax, 0x4c00)); // 20 mov ax,4c00h R(_INT(0x21)); // 21 int 21h
struct Memory m = { {0}, // padding {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, // segment _data {‘H’,‘e’,‘l’,‘l’,‘o’,’ ‘,‘W’,‘o’,‘r’,‘l’,‘d’,’!‘,’\n’,‘\r’,‘$’}, // _msg … [code]
речь идет о подобном коде?