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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2011-07-28 09:24] 实验15

点击查看原图
assume cs:code
stack segment
        db 128 dup(0)
stack ends

code segment
start:
        mov ax,stack
        mov ss,ax
        mov sp,128
        
        push cs
        pop ds
        mov si,offset a

        mov ax,0
        mov es,ax
        mov di,204H
        
        cld
        mov cx,offset aend -offset a
        rep movsb
        
        mov ax,0
        mov es,ax
        push es:[4*9]
        pop...
阅读全文 | 评论次数(0) | 浏览次数(285) | 所属类型(默认类型)

[2011-07-25 12:40] 实验14

点击查看原图
assume cs:code
code segment
start:
        mov ax,0b800H
        mov ds,ax
        mov si,12*160+31*2
        
        mov byte ptr [si+2*2],'/'
        mov byte ptr [si+2*5],'/'
        mov byte ptr [si+2*11],':'
        mov byte ptr [si+2*14],':'
        
        mov al,9
        mov cx,3
s1:
        push ax
        push cx
        out 70H,al
        in al,71H
        mov ah,al
        mov cl,4...
阅读全文 | 评论次数(2) | 浏览次数(281) | 所属类型(默认类型)

[2011-07-24 19:25] 实验12

点击查看原图
assume cs:code
code segment
start:
        mov ax,cs
        mov ds,ax
        mov si,offset do0
        
        mov ax,0
        mov es,ax
        mov di,200H
        
        mov word ptr es:[0],200H
        mov word ptr es:[2],0
        
        mov cx,offset do0end-offset do0
        rep movsb
        
        mov ax,4c00H
        int 21H
do0:
        jmp short do0start
        db 'divide error!' ...
阅读全文 | 评论次数(0) | 浏览次数(289) | 所属类型(默认类型)

[2011-07-24 12:02] 实验11

点击查看原图
assume cs:codesg,ds:datasg,ss:stacksg

datasg segment
        db 'Beginner''s All-purpose Symbolic Instruction Code.',0
datasg ends

stacksg segment
        db 16 dup(0)
stacksg ends

codesg segment
start:
        mov ax,datasg
        mov ds,ax
        mov si,0
        
        call letterc
        
        mov dh,12
        mov dl,15
        mov cl,0111...
阅读全文 | 评论次数(0) | 浏览次数(258) | 所属类型(默认类型)

[2011-07-24 03:42] 子程序的编程

汇编中call/ret(retf)实现了子程序的调用,因此,可以自己编写不同的子程序以供调用,体现了结构化程序设计的思想,使得代码的维护更加方便.以下是个人编写子程序的经验(尽管笔者仅编写了几个子程序):
1.对于子程序,要有详尽的描述,如功能,参数,返回,栈的使用
2.内部屏蔽,有些寄存器需要在子程序结束时恢复原值,这可以通过栈来实现.
子程序编写步骤:
1.确定功能,并加到注释中
2.确定参数,返回,并加到注释中
3.编写代码
4.确定要屏蔽的寄存器,在子程序开始和结束处入栈和出栈,注意出入顺序相反
5.编写程序(尽量简单,以避免可能的错误是由调用者产生的)并调用该子程序,...
阅读全文 | 评论次数(0) | 浏览次数(347) | 所属类型(默认类型)

[2011-07-23 08:53] 课程设计1-终结篇

点击查看原图
下面是全部源代码(注意:数据段那三堆数据是一行的)
assume cs:codesg,ds:datasg,ss:stacksg

datasg segment
        db '1975',0,'1976',0,'1977',0,'1978',0,'1979',0,'1980',0,'1981',0,'1982',0,'1983',0,'1984',0,'1985',0,'1986',0,'1987',0,'1988',0,'1989',0,'1990',0,'1991',0,'1992',0,'1993',0,'1994',0,'1995',0
        ;下面第一个偏移地址是105
        dd 1...
阅读全文 | 评论次数(0) | 浏览次数(244) | 所属类型(默认类型)

[2011-07-23 05:55] 课程设计1-预备篇

点击查看原图
课程设计1需要一个可以转换超过65535的数到十进制字符的子程序,结合前面的经验,编写如下程序(其中有个复合子程序是所需要的):
assume cs:codesg,ds:datasg,ss:stacksg

datasg segment
        db 16 dup(0)
datasg ends

stacksg segment
        dd 12 dup(0)
stacksg ends

codesg segment
start:
        mov ax,datasg
        mov ds,ax
        mov si,0
        
        mov ax,stacksg
        mov ss,ax
        mov...
阅读全文 | 评论次数(0) | 浏览次数(272) | 所属类型(默认类型)

[2011-07-23 04:36] 实验10.3

点击查看原图
assume cs:codesg,ds:datasg,ss:stacksg

datasg segment
        db 10 dup(0)
datasg ends

stacksg segment
        dd 2 dup(0)
stacksg ends

codesg segment
start:
        mov ax,datasg
        mov ds,ax
        mov ax,stacksg
        mov ss,ax
        mov si,0
        
        mov ax,12666
        call dtoc
        
        mov dh,12
        mov dl,37
        mov cl,01110100B...
阅读全文 | 评论次数(0) | 浏览次数(312) | 所属类型(默认类型)

[2011-07-23 02:37] 实验10.2

点击查看原图
assume cs:codesg,ss:stacksg

stacksg segment
        db 16 dup(0)
stacksg ends

codesg segment
start:
        mov ax,0FFFFH
        mov dx,0FFFFH
        mov cx,0A00H
        call divdw
        mov ax,4c00H
        int 21H
;divdw:进行dword/word=dword型除法,不会溢出
;参数:(dx)=被除数高16位,(ax)=被除数低16位,(cx)=除数
;返回:(dx)=商高16位,(ax)=商低16位,(cx)=余数
;栈:...
阅读全文 | 评论次数(0) | 浏览次数(314) | 所属类型(默认类型)

[2011-07-23 01:51] 实验10.1

点击查看原图
assume cs:codesg,ds:datasg,ss:stacksg

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

stacksg segment
        dw 8 dup(0)
stacksg ends

codesg segment
start:
        mov ax,datasg
        mov ds,ax
        mov ax,stacksg
        mov ss,ax
        mov si,0
        mov sp,16
        
        mov dh,12
        mov dl,32
        mov cl,01110100B
        
        c...
阅读全文 | 评论次数(0) | 浏览次数(290) | 所属类型(默认类型)