Вот есть такой цикл:
Код | m1: sub cx,3h jp m2 jnp m3 m2: sub ax,cx jmp m4 m3: add ax,bx m4: cmp cx,0FFF2h jl m5 inc cx loop m1 m5: nop
|
Он работает. Хочу, чтоб на каждой интерации выводилось окошко со значениями регистов ax, bx и cx. Сделал вот так:
Код | m1: sub cx,3h jp m2 jnp m3 m2: sub ax,cx jmp m4 m3: add ax,bx m4: cmp cx,0FFF2h jl m5
pusha invoke wsprintf,offset message,offset format,ax,bx,cx invoke MessageBoxA,0,offset message,0,0 popa
inc cx loop m1 m5: nop
|
И вот из-за wsprintf в регистры записывается какой-то бред. В результате цикл выполняется только два раза, а должен 14. Если wsprintf закомментировать, все нормально. Объясните, пожалуйста, почему так происходит. Я ведь сделал pusha и popa. |