8、王爽《汇编语言》笔记_子程序一
来源:互联网 发布:js 字符串数组排序 编辑:程序博客网 时间:2024/05/22 04:33
1、显示字符串: show_str
;名称:show_str;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。;参数:(dh)=行号(取值范围0~24);; (dl)=列号(取值范围0~79);; (cl)=颜色;; ds:si指向字符串的首地址。;返回:无。show_str: push ax; 保护数据 push bx push es push si mov ax,0b800h; 显存基址 mov es,ax mov ax,160; 每行所占的字节数 mul dh; 行数偏移 mov bx,ax;bx=160*dh mov ax,2; 每行位置偏移 mul dl ;ax=dl*2 add bx,ax ;mov bx,(160*dh+dl*2)设置es:bx指向显存首地址 mov al,cl ;把颜色cl赋值al mov cl,0; 清零show0: mov ch,[si]; 获取数据 jcxz show1 ;(ds:si)=0时,转到show1执行 mov es:[bx],ch; 写入显存 mov es:[bx].1,al; 写入颜色 inc si ;ds:si指向下一个字符地址 add bx,2 ;es:bx指向下一个显存地址 jmp show0show1:; 结束 pop si; 取出保存的数据 pop es pop bx pop ax ret
2、将数据转化为字符串:dtoc;名称:dtoc;功能:将word型数据转变为表示十进制的字符串,字符串以0为结尾符。;参数:(ax)=word型数据;; ds:si指向字符串首地址。;返回:无。dtoc:push ax; 保存数据 push bx push cx push dx push si push di mov di,0d10: mov dx,0 ;设置被除数高位为0 mov bx,10 ;除数为10 div bx add dx,30h ;ax/10的余数+30h,转为字符 push dx ;字符入栈 inc di ;记录字符个数 mov cx,ax jcxz d11 ;当ax/10的商=0时,转到d11执行 jmp d10d11: mov cx,did12: pop dx ;字符出栈 mov [si],dl inc si ;ds:si指向下一单元 loop d12 mov dl,0 mov [si],dl ;设置结尾符0 pop si pop di pop dx pop cx pop bx pop ax ret
3、将字符串小写字母变为大写
;名称:letterc;功能:将以0结尾的字符中的小写字母转变成大写字母;参数:ds:si指向字符串首地址letterc:push silet: cmp byte ptr [si],0 ;和0进行比较 je let0 ;如果等于0则转到let0,结束 cmp byte ptr [si],61h ;和61h进行比较 jb let1 ;如果低于60h则转到let1,继续循环 cmp byte ptr [si],86h ;和86h进行比较 ja let1 ;如果高于86h则转到let1,继续循环 and byte ptr [si],11011111b ;ASCII码的第5位置为0,转为大写let1: inc si jmp letlet0: pop si ret
4、
- 8、王爽《汇编语言》笔记_子程序一
- 13、王爽《汇编语言》笔记_子程序二
- 6、王爽《汇编语言》笔记_实验8
- 汇编语言--王爽--实验9 子程序
- 1、王爽《汇编语言》笔记_第一二三章
- 3、王爽《汇编语言》笔记_实验6
- 5、王爽《汇编语言》笔记_实验7
- 10、王爽《汇编语言》笔记_实验12
- 12、王爽《汇编语言》笔记_实验15
- 汇编语言(王爽)实验十 编写子程序
- 王爽《汇编语言》实验10:编写子程序show_str
- 汇编语言-子程序调用
- 拓展:汇编语言的子程序
- 汇编语言--如何调用子程序
- 汇编语言showStr测试子程序
- 王爽 《汇编语言》学习笔记 (一)
- 汇编语言笔记(一)
- 汇编语言学习笔记(一)
- Homework2_2.java
- 人脸检测之Haar分类器
- DOM方式与SAX方式的异同
- 《代码大全》学习笔记(2):利用隐喻对编程进行更深刻的理解
- 自定义实现Hadoop Key-Value
- 8、王爽《汇编语言》笔记_子程序一
- Yii: 如何在CGridView通过Ajax方式刷新数据后执行JS脚本
- SQL定义联合主键
- 开发者使用JasperReport——查询数据库
- powerDesigner15 导入PL/SQL表
- java设计模式之建造者模式
- 2243
- Linux内核最新的连续内存分配器(CMA)——避免预留大块内存
- 数据库逻辑设计E-R图转换为关系模型