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 基于面向对象的图书馆借阅管理系统
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥20 centos linux 7.9安装php8.2.18不支持mysqli模块的问题
  • ¥15 stata空间计量LM检验
  • ¥15 NAO机器人说出txt文本内容
  • ¥15 关于k8s node节点被释放后如何驱逐节点并添加新节点
  • ¥15 subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1
  • ¥15 笔记本接显卡扩展坞重启报错
  • ¥15 为什么这个指令报错啊,一直弄不懂为什么,想问问该怎么弄,决求解决,ubuntu刚入手
  • ¥15 用百度飞将的paddleyolo库里的yolov7训练自己数据集