主题:关于回车换行
qiuyishuaige
[专家分:150] 发布于 2006-05-19 14:20:00
code segment
assume cs:code
start:
mov ah,1
int 21h
add al,2
mov dl,0ah
mov ah,2
int 21h
mov dl,al
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end start
这个代码是输入一个数 加2 后在输出结果,要换行输出,为什么不成功呢??哪里出错了??
回复列表 (共7个回复)
沙发
C语言爱好者 [专家分:19410] 发布于 2006-05-19 16:09:00
dos/windows的换行符包含了回车和换行,在输出0ah后,还需要再加上输出一个0dh。
板凳
qiuyishuaige [专家分:150] 发布于 2006-05-19 17:23:00
我改了下,
在输出0ah后加了个0dh,换行是换了但是没有输出最后的al
code segment
assume cs:code
start:
mov ah,1
int 21h
add al,2
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
mov dl,al
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end start
麻烦楼上大哥 能不能帮我改下嘛, .
3 楼
msgrev [专家分:190] 发布于 2006-05-19 18:28:00
code segment
assume cs:code
start:
mov ah,1
int 21h
add al,2
mov bl,al
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
mov dl,bl
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end start
4 楼
qiuyishuaige [专家分:150] 发布于 2006-05-19 20:56:00
谢谢楼上大哥,
通过了,呵呵!! 但是为什么要把 AL 的值放到其他地方呢,是不是因为中间的换行后,不能在执行 mov dl,al ??
5 楼
66543 [专家分:200] 发布于 2006-05-19 22:36:00
中断调用有可能会改变AX里的值。经常碰到。
6 楼
msgrev [专家分:190] 发布于 2006-05-20 20:58:00
中断调用有可能会影响寄存器的值
7 楼
qiuyishuaige [专家分:150] 发布于 2006-05-21 09:07:00
楼上大哥们,
老师讲中断就是调用子程序. 那么上面的这些:
mov dl,0ah
mov ah,2
int 21h
也能算是一个子程序了??
我来回复