add dx,ax
add di,dx ;这几行是为了计算字符串首的偏移地址 mov ah,cl ;字符的高位保存属性,低位保存数据 push cx change:mov cl,es:[si] mov ch,0 jcxz ok mov al,es:[si] push es push ax
mov ax,0b800h ;显示缓冲区的空间为B8000H~BFFFFH mov es,ax pop ax
mov es:[di],ax ;输出到缓冲区 pop es inc si add di,2
jmp short change ok:pop cx pop dx pop ax pop si pop di ret
codesg ends end start
(3)结果如图:
四、 实验总结
通过这次实验,我学会了call和ret指令的用法,学会了编写子程序以及调用各个子程序,组成一个大程序。我发现,汇编的子程序,就跟c语言的函数差不多。在实验的过程中,我学会了编写更加复杂的程序,懂得了更多的汇编知识,在汇编语言的学习上又有了新的进步。