ouerhuilaikankan 2015-07-22 07:00 采纳率: 100%
浏览 1610
已采纳

8086汇编语句出错

assume cs:code
data segment
db 'abcde',0
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start:mov dh,0
mov dl,0
mov cl,2
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov di,0
mov si,0
call show_str
mov ax,4c00h
int 21h
show_str:mov ch,0
push cx ;!!!
mov cl,ds:[di]
jcxz excout
mov al,0A0h
mul dh
mov bx,ax
mov al,2h
mul dl
add bx,ax
mov al,ds:[di]
mov es:[bx+si],al
pop cx ;!!!
mov es:[bx+si+1],cl ;把感叹号处去掉,此处cl换成2便可运行成功,但是cl是作为传入参数
add di,1
add si,2
jmp short show_str
excout:ret
code ends
end start

好像是cx的问题

  • 写回答

4条回答 默认 最新

  • ouerhuilaikankan 2015-07-24 02:51
    关注

    我自己解决了,是push cx后jcxz excout的pop ip取到了cx的值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置