汇编网首页登录博客注册
marchsnow的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  

[2009-03-07 12:39] 清屏子程序

点击查看原图
今天在课程设计1的代码中加了一段清屏功能的子程序。

clear:
                        push ax
                        push es
                        push bx
                        push cx
                        mov ax,0b800h
                        mov es,ax
                        mov bx,0
                        mov cx,2000
      clears:
                        mov al,22h
                        mov es:[bx],al
                        mov al,0
                        mov es:[bx+1],al
                        add bx,2
                        loop clears
                        pop cx
                        pop bx
                        pop es
                        pop ax...
阅读全文 | 评论次数(1) | 浏览次数(236) | 所属类型(默认类型)

[2009-03-06 21:38] 课程设计1

点击查看原图
这是到目前为止我写的最长的一个汇编程序,调了好久。应该来说,从一开始思路还是清晰的,几个子程序是之前学习过程中写好的并验证“没问题”的,在写好了整个大的程序的结构之后,把之前写好的子程序直接copy过来,因为对自己写的这几个子程序对外的松耦合性很“自信”,结果几个关键的错误恰恰就是因为子程序修改了外层程序的寄存器造成的,解耦做的还是不到位!
  通过这个课程设计,使之前编写的几个子程序的问题都暴露出来了,是个很好的总结。之前的帖子里的子程序我便也不去修改它了吧。留着当个错误的参考记录也好...
  
课程设计1源程序:

assume cs:codesg 

data segme...
阅读全文 | 评论次数(1) | 浏览次数(281) | 所属类型(默认类型)

[2009-03-01 20:13] 实验十(3)数值显示

子程序名称:dtoc
功能:将word型数据转变为表示十进制数的字符串,字符串以0结尾符
参数:(ax)=word型数据
      ds:si指向字符串的首地址
返回:无
例子:将12666以十进制绿色字显示在屏幕的8行3列 

例子源代码:

assume cs:code

data segment
        db 10 dup (0)
data ends

code segment
start:
                        mov ax,12666
                        mov bx,data
                        mov ds,bx
                        mov si,0
                call dtoc                        
                        mov d...
阅读全文 | 评论次数(2) | 浏览次数(276) | 所属类型(默认类型)

[2009-02-25 21:58] 实验十(2)解决除法溢出

点击查看原图
子程序名称:divdw
功能:进行不会溢出的除法,被除数为dword型,除数为word型,结果为dword型
参数:(ax)=被除数的低16位 (dx)=被除数的高16位 (cx)=除数
返回:(ax)=商的低16位 (dx)=商的高16位 (cx)=余数

例子:计算1000000/10(F4240H/0AH)

例子源代码:
;计算1000000/10(f4240h/ah)
assume cs:code

code segment
        start:
                                mov dx,0fh
                                mov ax,4240h
                                mov cx,0ah
                                call ...
阅读全文 | 评论次数(1) | 浏览次数(267) | 所属类型(默认类型)

[2009-02-25 21:48] 实验十(1)显示字符串

名称:show_str
功能:在制定的位置,以制定的颜色,显示字符串
参数:(dh)=行号 (dl)=列号 (cl)=颜色,ds:si指向字符串的首地址
返回:无
例子:在屏幕的8行3列,用绿色显示data段中的字符串

例子的源代码:

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,...
阅读全文 | 评论次数(1) | 浏览次数(288) | 所属类型(默认类型)

[2009-02-23 23:36] 实验9 彩色字显示

点击查看原图
哎......果然人钝了挺多......挺简单个实验竟调了N久......困死了.....
源代码(以绿底红字为例):

assume cs:codesg,ds:datasg

datasg segment
        db 'welcome to masm!'
datasg ends

codesg segment
start:
                        mov ax,datasg
                        mov ds,ax
                        mov bx,0
                        mov si,0
                        mov cx,10h
                        mov ax,0b87ch
                        mov es,ax
                s:
                        mov dl,ds:[bx...
阅读全文 | 评论次数(0) | 浏览次数(240) | 所属类型(默认类型)

[2009-02-19 19:49] 《汇编语言》实验七源程序

assume cs:codesg

data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984'
db '1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,...
阅读全文 | 评论次数(2) | 浏览次数(306) | 所属类型(默认类型)