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

我的博客

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

[2011-02-15 21:48] 第17章课程设计2安装程序含任务程序实现部分功能

;课程设计2
assume cs:code
code segment
start:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;名称:安装程序
;功能:安装任务程序到软盘0面0道1扇区
;将后面的代码(任务程序)写到软盘0号逻辑扇区
                mov ah,00H        ;BIOS提供的int 13h中断ah=0表示磁盘系统复位,ah=0dh表示硬盘系统复位
                mov dl,00H        ;驱动器(dl)=80H表示硬盘c,00表示软盘
        ...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(960)

[2011-02-13 21:17] 第17章课程设计2实现重新启动计算机的程序

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
知识点:
 在dos的使用过程中,如果出现了异常情况常常需要重新启动系统,除了开机冷启动外,还有热启动和RESET开关复位启动,他们的共同特点是转入BIOS的入口点(即ROM 的起始单元FFFF:0处),执行该处的跳转指令,转向启动程序,该启动程序在执行过程中需检测复位标志字(在地址0040:0072处,占2个字节)的值,若0040:0072为1234则启动时不检测内存;若非1234则启动先检测内存,再启动系统.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
热启动和...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(1042)

[2011-02-11 09:12] 第17章:读取硬盘c盘(dl)=80h,0道1扇区的内容到0:200的程序(带内存检验)

;第17章:读取硬盘c盘(dl)=80h,0道1扇区的内容到0:200的程序(带内存检验)
assume cs:code
code segment
start:
        mov ax,0
        mov es,ax
        mov bx,200h ;es:bx指向接收从扇区读入数据的内存区

        mov al,1         ;(al)=读取的扇区数
        mov ch,0         ;(ch)=磁道号
        mov cl,1        ;(cl)=扇区号
        mov dh,0        ;(dh)=磁头号(对于软盘即面号,因为一个面用一个磁头来读写
        mov dl,80h        ;(dl)=驱动器号 软驱从0开始硬盘从80h开始:0表示软驱...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(877)

[2011-02-11 09:06] 第17章:读取软驱0面0道1扇区的内容到0:200的程序(带内存检验)

;bios提供的访问磁盘的中断例程为int 13h
;读取软驱0面0道1扇区的内容到0:200的程序如下:
assume cs:code
code segment
start:
        mov ax,0
        mov es,ax
        mov bx,200h ;es:bx指向接收从扇区读入数据的内存区

        mov al,1         ;(al)=读取的扇区数
        mov ch,0         ;(ch)=磁道号
        mov cl,1        ;(cl)=扇区号
        mov dh,0        ;(dh)=磁头号(对于软盘即面号,因为一个面用一个磁头来读写
        mov dl,0        ;(dl)=驱动器号 软驱从0开始硬盘从80h开...
阅读全文 |   作者:chinaljg | 评论次数(1) | 浏览次数(1048)

[2011-02-11 08:09] 第17章:字符串的输入

assume cs:code
code segment
start:
        call getstr
        mov ax,4c00h
        int 21h

;完整的接收字符串输入的子程序
;21:03 2011-02-10 author:chinaljg
getstr:        push ax
getstrs:        mov ah,0
        int 16h        ;读取键盘缓冲区,ah=扫描码al=ascii码
        cmp al,20h
        jb nochar        ;ascii码小于20h,说明不是字符
        ;ascii码小于41h,能否说明不是字符?????????????????
        mov ah,0        ;a...
阅读全文 |   作者:chinaljg | 评论次数(1) | 浏览次数(1112)

[2011-02-10 19:45] 第17章编程:接收用户的键盘输入

;使用int 16h中断例程读取键盘缓冲区
;编程:接收用户的键盘输入,输入r,将屏幕上的字符设置为红色,输入g设置为绿色,输入b,设置为蓝色
;16:58 2011-02-10 author:chinaljg
assume cs:code
code segment
start:
        mov ah,0 ;读取键盘缓冲区,并从缓冲区中删除
        int 16h        ;bios的16h中断0号功能
        ;返回值:(ah)=扫描码,(al)=ASCII码
        ;r1372H          g2267h     b3062h
        
        mov ah,1        ;ah用来存放颜色信息,ah=1表示蓝色...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(911)

[2011-02-10 15:16] 王爽《汇编语言》第2版实验16:程序入口地址的直接定址表

;实验16:编写包含多个功能子程序的中断例程
;安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序
;1)清屏
;2)设置前景色
;3)设置背景色
;4)向上滚动一行
;入口参数说明如下:
;1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色
;        2表示设置背景色,3表示向上滚动一行
;2)对于2和3号功能,用al传递颜色值,(al)=[0,7]
;09:06 2011-02-10 author:chinaljg

assume cs:code
code segment
start:
        ;安装新的int 7ch中断例程
        mov ax,cs        ...
阅读全文 |   作者:chinaljg | 评论次数(2) | 浏览次数(1418)

[2011-02-09 22:30] 王爽《汇编语言》第2版第16章:计算sin(x)  (带图片,带角度检测)

;直接定址表,带角度值的检测
;编写子程序,计算sin(x),x=(0,30,60,90,120,150,180)
;author:chinaljg
;20:42 2011-02-09
;建立查询表
;用ax向子程序传递角度
assume cs:code
code segment
start:
        mov ax,120   ;;用ax向子程序传递角度

        call showsin  ;调用子程序,通过查询表找到sin三角函数的值

        mov ax,4c00h  ;调用dos中断程序返回
        int 21h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(898)

[2011-02-09 22:25] 王爽《汇编语言》第2版第16章:以十六进制显示字节型数据

;直接定址表
;编写子程序,以十六进制的形式在屏幕中间显示给定的字节型数据
;author:chinaljg
;20:09 2011-02-09
;建立一维表,表中依次存储字符"0"-"F"
;用al传送要显示的数据
assume cs:code
code segment
start:
        mov al,0b8h   ;用al传送要显示的数据

        call showbyte  ;调用子程序,以十六进制形式显示al中给定的字节型数据

        mov ax,4c00h  ;调用dos中断程序返回
        int 21h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(1065)

[2011-02-08 22:34] 王爽《汇编语言》第2版实验15:dos下松开A键,就显示满屏A,否则其它键正常(带图片)

assume cs:code
stack segment
        db 128 dup (0)
stack ends
code segment
start:        mov ax,stack
        mov ss,ax
        mov sp,128  ;ss:sp指向栈顶
        
        mov ax,cs
        mov ds,ax
        mov si,offset int9  ;ds:si指向源地址

        mov ax,0
        mov es,ax
        mov di,204h   ;es:di指向目的地址,0:200-0:201 保存原来int9的ip,0:202-0:203保存原中断cs

        mov cx,...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(998)

[2011-02-08 21:49] 王爽《汇编语言》第2版实验14:访问CMOS RAM显示当前日期和时间

;实验14编程,以"年/月/日 时:分:秒"的格式,显示当前的日期和时间.
assume cs:code
code segment
s1:        db "20??/??/?? ??:??:??",'$'   ;格式化显示格式
s2:        db 9,8,7,4,2,0                ;日期和时间对应的cmos ram单元地址

start:
        mov ax,cs
        mov ds,ax
        mov bx,offset s2
        mov si,offset s1
        ;读取相应数据并存放到字符串中。
        mov cx,6
s:        push cx
        mov al,ds:[bx]
        out 70h,al ...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(336)

[2011-02-08 21:36] 王爽《汇编语言》第2版实验13(3)在屏幕2,4,6,8行显示4句英文诗

;下面的程序,分别在屏幕的第2,4,6,8行显示4句
;英文诗,补全程序
assume cs:code
code segment
s1:        db 'Good,better,best,','$'
s2:        db 'Never let it rest,','$'
s3:        db 'Till good is better,','$'
s4:        db 'And better,best.','$'
s:        dw offset s1,offset s2,offset s3,offset s4
;offset s1=0,offset s2=12h,offset s3=25h,offset s4=3a...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(376)

[2011-02-08 21:08] 王爽《汇编语言》第2版实验13(2)用int 7ch中断实现loop指令功能

assume cs:code
code segment
start:
        mov ax,0b800h
        mov es,ax
        mov di,160*12
        mov bx, offset s-offset se
        mov cx,80
s:        mov byte ptr es:[di],'!'
        add di,2
        int 7ch
se:        nop
        mov ax,4c00h
        int 21h
code ends
end start        
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;编写 安装int 7ch中断例程,完成loop指...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(333)

[2011-02-08 21:05] 王爽《汇编语言》第2版实验13(1)用int 7ch中断显示用0结束的字符串

assume cs:code
data segment
        db "welcome to masm! ",0
data ends
code segment
start:        mov dh,10
        mov dl,10
        mov cl,2
        mov ax,data
        mov ds,ax
        mov si,0
        int 7ch
        
        mov ax,4c00h
        int 21h
        
code ends
end start
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;编写并安装int 7ch中断例程,
;功能为显示一...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(344)

[2011-02-08 11:26] 王爽<<汇编语言>>第2版实验12:编写0号中断的处理程序(带详细注释和验证图片)

assume cs:code
code segment
start:
        ;安装do0到0000:0200处
        mov ax,0
        mov es,ax
        mov di,200h  ;es:di指向0000:0200处 目标地址
        mov ax,cs
        mov ds,ax
        mov si,offset do0        ;ds:si 指向do0代码处,源地址
        mov cx,offset do0end-offset do0  ;传输长度
        cld        ;传输方向正向
        rep movsb
        ;设置0号中断向量表项
        mov ax,0
        mov es,ax
        mov word pt...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(529)

[2011-02-08 11:05] 王爽《汇编语言》实验11(带详细注释和图片)

;实验11:编写子程序
;将包含任意字符,以0结尾的字符串中的小写字母转变为大写字母
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变为大写字母
;参数:ds:si指向字符串首地址
assume cs:codesg

datasg segment
        db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:
        mov ax,datasg
        mov ds,ax
        mov si,0
        call letterc

        mov ax...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(545)

[2011-02-06 12:18] 王爽《汇编语言》课程设计一(带详细注释和图片)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;王爽<<汇编语言>>第2版课程设计1:将实验7中的power idea公司的数据按
;照要求的格式在屏幕上显示出来
;调试后若看不到效果,可以进入debug调试后,退出再运行.(个人经验依电脑而异)
assume cs:codesg

data segment
    db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
    db '1984','1985','1986','1987','1...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(394)

[2011-02-06 12:04] 第10章实验10.3  数值显示 (带详细注释)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;名称: dtoc
;功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符.
;参数:(ax)=word型数据
;        ds:si指向字符串的首地址
;返回: 无
;应用举例:编程将数据12666以十进制的形式在屏幕的8行3列,用绿色显示
;出来.在显示时我们调用本次实验中的第一个子程序show_str.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;aut...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(668)

[2011-01-21 07:37] 重写实验10.2  解除除法溢出 (带详细注释)

第10章编写子程序共有3个。  
课程设计一个,第17章还有一个课程设计。  
总体感觉:一定要按照老师的要求,独立完成子程序的设计,前后的关联性相当强,前面的没有弄明白,后面的内容很本看不懂。  
;;;;;;;;;;;;;;;;;;;;;  
建议:一定要亲自做实验。今天又重新写了一遍第10章的子程序。  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;名称:divdw
;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(481)

[2011-01-21 07:36] 重写实验10.1  显示字符串 (带详细注释)

第10章编写子程序共有3个。 
课程设计一个,第17章还有一个课程设计。 
总体感觉:一定要按照老师的要求,独立完成子程序的设计,前后的关联性相当强,前面的没有弄明白,后面的内容很本看不懂。 
;;;;;;;;;;;;;;;;;;;;; 
建议:一定要亲自做实验。今天又重新写了一遍第10章的子程序。 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串.
;参数:(dh)=行号(取值范围0-24),(dl)=列...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(440)
页码数(3):  1  2  3