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

我的博客

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

[2008-06-19 19:53] 课程设计2-方案二(实测通过)

今天早上起来,决定把代码“优化”一下,使程序的逻辑变得更加清晰,更加便于读者阅读。虽然改造后的程序长度增加了,但是思路也清晰多了。

同样地,程序也比较长,有400多行,其中任务程序刚好是1024个字节,占软盘的两个扇区。
代码如下:

assume cs:code

code segment
;+++++++++++++++++++++任务程序+++++++++++++++++++++++++++++++++
renwu: 
       mov bx,0
        mov es,bx
        mov bx,7c00h
        mov ah,2...
阅读全文 | 评论次数(3) | 浏览次数(676) | 所属类型(汇编作业)

[2008-06-19 19:47] 课程设计2-方案一(实测通过)

还有几天就要考试了,趁着考试之前,痛下决心,决定无论如何要把课程设计2赶出来,免得夜长梦多(其实也拖了很久了,一直没时间去弄)。终于,在经过几个熬夜到三点以后,昨晚终于把它调试成功。但是由于过分追求代码的简短,故逻辑不太明显,不利于读者阅读。但不管怎么样,还是贴出来,作为反面教材吧。希望大家在以后编程序的时候多注重一下结构化与规范化。


本方案没有采用数据标号,只是采用了简单容易理解的跳转指令。由于无法截图,故就不贴图了。

程序代码如下,比较长,大概有400多行左右吧……

assume cs:code

code segment
;++++++++++++++++++...
阅读全文 | 评论次数(2) | 浏览次数(585) | 所属类型(汇编作业)

[2008-06-07 14:32] 实验17

离开差不多两周,现在重新回归,呵呵……


==========
assume cs:code

code segment
 int7:       
     push bx
     cmp ah,1
     ja back      ;功能号判断
     call jisuan   ;计算面号、磁道号、扇区号
     mov dl,0      ;设置驱动器号
     mov al,1
     inc ah
     inc ah        ;int 13h的功能号(此处没有直接赋予,而是间接赋予)
     int 13h

 back...
阅读全文 | 评论次数(3) | 浏览次数(612) | 所属类型(汇编作业)

[2008-05-11 23:48] 实验16 编写包含多个功能子程序的中断例程(修改)

assume cs:code
code segment 
    
;======新的int 7ch中断例程=======
           
   int7ch: jmp short set
        table: dw sub1+200h,sub2+200h,sub3+200h,sub4+200h
        
      set:  push bx
            
            cmp ah,3
            ja back
            mov bl,ah
            mov bh,0
   ...
阅读全文 | 评论次数(6) | 浏览次数(570) | 所属类型(汇编作业)

[2008-05-06 23:09] 实验15 安装新的int 9中断例程

assume cs:code

code segment
    start:  mov ax,cs
            mov ds,ax
            mov si,offset int9                ;设置ds:si指向源字符串首地址
            mov ax,0
            mov es,ax
            mov di,204h                         ;设置es:di指向目的首地址
            mov cx,offset int9end -offset int9 ...
阅读全文 | 评论次数(4) | 浏览次数(627) | 所属类型(汇编作业)

[2008-05-05 23:32] 实验14 访问CMOS RAM (方案二)

点击查看原图
本方案与方案一的区别在于,本方案没有调用显示子程序,而是直接将数据送到显示缓冲区,达到显示的效果。



;=================说明===================
; 题目要求以“年/月/日 时:分:秒”的格式显示时间
; 我的思路是取6个信息要用到6次循环,在取到“日”这个信息时,CX=4,因此在进行下一次循环前
; 先判断CX是否为4,如果为4,则在后面加空格;如果大于4,则加/号;小于4大于1时,则加:号;
; 小于或等于1时,则不加任何符号。   
; 流程图如下:
;                                      ...
阅读全文 | 评论次数(1) | 浏览次数(687) | 所属类型(汇编作业)

[2008-05-05 23:11] 实验14 访问CMOS RAM (方案一)

点击查看原图
本方案调用了DOS提供的显示子功能中断例程来显示信息。



;=============说明=============
; 题目要求以“年/月/日 时:分:秒”的格式显示时间
; 我的思路是取6个信息要用到6次循环,在取到“日”这个信息时,CX=4,因此在进行下一次循环前
; 先判断CX是否为4,如果为4,则在后面加空格;如果大于4,则加/号;小于4大于1时,则加:号;
; 小于或等于1时,则不加任何符号。   
; 流程图如下:
;                                      取循环次数
;                        ...
阅读全文 | 评论次数(1) | 浏览次数(709) | 所属类型(汇编作业)

[2008-04-21 13:46] 实验11 编写子程序

点击查看原图
代码说明:
由于转换得到的结果都是在内存中,不方便直接查看,故我两次调用了以前写的show_str,在转换前显示一次原字符串,在转换后再调用显示转换后的字符串,这样就便于结果的直接观察。真正实现转换功能的子程序是letterc部分。


源代码如下:



assume cs:codesg
datasg segment
 db "Beginners's All-purpose Symbolic Instruction Code.",0
datasg ends

codesg segment
    
    begin:mov ax,datasg
       ...
阅读全文 | 评论次数(1) | 浏览次数(560) | 所属类型(汇编作业)

[2008-04-16 21:12] 实验10.3 数值显示(两个方案)(修改)

点击查看原图
想了两种不同的思路,一起发出来……附图为执行结果

方案一:
;*******************************************************************************
;                             子程序描述
;名称:dtoc
;功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符
;参数:(ax)=word型数据
;      ds:si指向字符串的首地址
;返回:无
;***************************************************...
阅读全文 | 评论次数(4) | 浏览次数(570) | 所属类型(汇编作业)

[2008-04-16 01:30] 实验10.2 解决除法溢出问题(修改)

;--------------------------------------------------------------------------------
;名称:divdw
;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型
;参数:(ax)=dword型数据的低16位
;       (dx)=dword型数据的高16位
;       (cx)=除数
;返回:(dx)=结果的高16位,(ax)=结果的低16位
;      (cx)=余数
;----------------------------------------...
阅读全文 | 评论次数(2) | 浏览次数(524) | 所属类型(汇编作业)
页码数(2):  1  2