欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

新手的汇编有关问题

更新时间: 2014-01-05 03:17:25 责任编辑: Author_N1

 

新手的汇编问题
assume cs:code

date segment
db 'hello world'
date ends

zhan segment
db 10 dup (0)
zhan ends

code segment
  start:mov ax,0b800h
mov es,ax
mov di,1680
call year
mov ax,date
mov ds,ax
mov bx,0

mov cx,11
      s:mov al,[bx]
mov ah,01110001b
mov es:[di],ax
inc di
inc di
inc bx
   loop s
mov ax,4c00h
int 21h


   year:
mov ax,zhan
mov ss,ax
mov sp,10
push cx
mov bl,111
mov cx,10
     s1:call num
inc bl
add di,10
   loop s1
pop cx
ret 


    num:
        mov ax,zhan
mov ss,ax
push cx
     s3:mov ax,10
        div bl
mov cx,ah
mov dl,al
mov dh,01110001b
mov es:[di],dx
jcxz s4
  loop s3
s4:pop cx
ret


code ends
end start
需要结果依次显示111   112    112等,最后显示hello world。不知道,哪里有错。初学,对这些用的还很生疏,望赐教!
--参考方法--
如果楼主是指语法错误的话是第53行:
mov cx,ah
应该把AH改成AX,或者改CX
--参考方法--
1. call 指令是需要使用堆栈的, 你的堆栈需要在 call 之前就建立好. 在函数里面就不要再反复的取初始化它了.
2. 没看到你的程序里面有输出啊? 怎么能显示 111, 112, hello world?
--参考方法--
引用:
如果楼主是指语法错误的话是第53行:
mov cx,ah
应该把AH改成AX,或者改CX


正解
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:17:25
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20445/
本文WWW.DOC100.NET DOC100.NET版权所有。