汇编语言--王爽--实验9 子程序
来源:互联网 发布:php base64解码 乱码 编辑:程序博客网 时间:2024/05/09 23:43
今天对于这个程序,研究了一下午。其他高级语言在调用函数时候都是系统帮助暂存主调函数的信息,汇编则把这些实现描述出来了。
assume cs:code
data segment
db 'welcome to masm!',0
data ends
code segment
start: mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
show_str:
push dx
push cx
push ax
push si
push ds
mov ax,0b800h ;显存地址从b800开始
mov es,ax
dec dh ;0~7 第八行则减去1
mov ah,0
mov al,160 ;一行80个字符加上80个属性数据
mul dh
mov bx ,ax
dec dl ;第三列则减去1
mov ah,0
mov al,2 ;每一列两个字节
mul dl
add bx,ax
mov al,cl
x: mov ch,0
mov cl,ds:[si]
jcxz ok
mov es:[bx],cl
mov cl,al
mov es:[bx+1],cl
add bx,2
inc si
jmp x
ok:
pop ds
pop si
pop ax
pop cx
pop dx
ret
code ends
end start
当程序运行到call,进入子程序后,先将主程序的所有寄存器先保存起来(其实对于这个程序不保存也可以运行),保存的目的是:因为寄存器都是有限的,如果子程序中用到主程序中的数据,可以保证主程序中的数据不被改变
0 0
- 汇编语言--王爽--实验9 子程序
- 汇编语言(王爽)实验十 编写子程序
- 王爽《汇编语言》实验10:编写子程序show_str
- 王爽《汇编语言》第10章 实验10 编写子程序
- 王爽《汇编语言》实验10:编写子程序show_str 解答
- 王爽《汇编语言》实验10:编写子程序divdw 解答
- 王爽《汇编语言》实验10:编写子程序dtoc 解答
- 王爽《汇编语言》实验11:编写子程序letterc 解答
- 王爽《汇编语言》实验11——编写子程序
- 王爽 汇编语言 第三版 实验10 编写子程序
- 王爽《汇编语言》实验10:编写子程序divdw 解答
- 1.显示字符串-汇编语言(王爽)-实验10 编写子程序
- 3.数值显示-汇编语言(王爽)-实验10 编写子程序
- 王爽 汇编语言 实验9
- 王爽《汇编语言》实验9
- 王爽《汇编语言》实验9
- 王爽《汇编语言》第十章实验十 子程序1(show_str) 题目解答
- 王爽《汇编语言》第十章实验十 子程序2(divdw) 题目解答
- PHP开发环境及开发环境搭建
- KMP算法初步
- 堆内存
- 大数阶乘
- vsftp 配置
- 汇编语言--王爽--实验9 子程序
- UVa11019 Matrix Matcher
- 最长公共子串问题
- /usr/lib/ld: cannot find lxx的解决办法
- windows下查看MTU
- hdu-1010 Tempter of the Bone
- BestCoder Round #9
- 正则表达式
- jquery基础1-jquery和dom对象转换