求救,关于一个汇编程序。。

labixiaoxin0804 2009-12-01 06:34:35

源代码如下:
assume cs:code,ds:data

data segment
db 'welcome to masm!',0
data ends

code segment
start:
mov ax,data
mov ds,ax
mov si,0

mov dh,8
mov dl,3
mov cl,2
call show_str

mov ax,4c00h
int 21h

;子程序说明:
;入口参数:字符串显示的行与列dh,dl;字符串显示的颜色cl;ds:si指向字符串的首地址
;功能:屏幕的屏幕的dh行dl列,显示颜色为cl的字符串
show_str: ;显示字符串子程序入口
push ax ;与pop指令结合进行相关寄存器的保护工作
push dx
push cx
push es
push di
push si

mov ax,0b800h ;子程序体
mov es,ax

sub ax,ax
mov al,160
mul dh
sub dh,dh
add dl,dl
add ax,dx
mov di,ax

mov al,cl
sub cx,cx
next:
mov cl,[si]
jcxz sret
mov es:[di],cl
mov es:[di+1],al
inc si
add di,2
jmp short next
sret:
pop si
pop di
pop es
pop cx
pop dx
pop ax

ret ;子程序返回
code ends
end start


本代码主要实现显示字符串
老师让我们把所用到的寄存器写出来,并写出重要语句的注解。。
由于本人还不是很懂汇编。。
所以请高手指点,谢谢!!~
...全文
48 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,459

社区成员

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

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