push ip
jmp near ptr show_str
指令裏有個 ip入棧,所以妳的程序執完後 棧底到棧頂的元素依次是 dx,cx,ds,si,ip.
後面 pop si 指令是把 棧頂元素給si, 但此時棧頂 放的是 ip的值,所以出錯了,相應的ds,cx.dx的值都錯了, 後面 RET指令相當於:pop ip ,所以返回的ip也錯了,程序無法正常返回
妳把 push dx
push cx
push ds
push si
這四條指令放到show_str: 後面就可以了