课本上一道简单的例题

danliandejintou 2010-06-06 10:35:06
这道题是:在屏幕上显示0~9字符。
我的问题是,BL在这里起了什么作用?
总觉得它是多余的,AL赋给BL,BL又赋回给AL,好像直接AL就可以了。
刚学汇编,问题可能有点傻,请见谅。
code segment
assume cs:code
disnum proc far
push ds
mov ax,0
push ax

push bx
push cx
push dx
mov cx,10
mov bl,0 ;从0开始显示
again:mov al,bl
and al,0fh ;屏蔽高4位
or al,30h
mov dl,al
inc al
mov bl,al
mov ah,2
int 21h
loop again
pop dx
pop cx
pop bx
ret
disnum endp
code ends
end disnum
...全文
85 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
BAYNPU 2010-06-06
  • 打赏
  • 举报
回复
;事实上这个源程序可以简化成如下:
code segment
assume cs:code
START:mov ax,0
mov cx,10
mov dl,30h ;从0开始显示
again:
mov ah,2
int 21h
inc dl
loop again
mov ax,4c00h
int 21h
code ends
end start
Boover 2010-06-06
  • 打赏
  • 举报
回复
bl确实没必要,实际上这个程序好拉杂,唠叨。
改下:
code segment
assume cs:code
disnum proc far
push ds
mov ax,0
push ax

push bx
push cx
push dx
mov cx,10
mov dl,30h ;从0开始显示
again:
mov ah,2
int 21h
inc dl
loop again
pop dx
pop cx
pop bx
ret
disnum endp
code ends
end disnum
danliandejintou 2010-06-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 baynpu 的回复:]
;事实上这个源程序可以简化成如下:
[/Quote]
呃,忘了说,是这样的,这道例题是在讲解子程序。
其中提到,寄存器需要保护。所以,要有push,pop

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧