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

我的博客

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

[2007-11-25 18:20] 推荐博文 绝处逢生---课程设计二之2功能实现

按照课本的提示,课程设计二的基本原理是:
1.写一段安装程序,在dos下执行,它负责把我们自己的启动程序机器码写入到软盘的0道0面1扇区上。
2.插入软盘,重启电脑(我用的是vmare虚拟机,dos系统),我们的启动程序就开始运行了,它的作用是:把4行文字打印到屏幕上,然后接受键盘输入。按1,2,3,4则分别执行4个功能,其他键呢就回到键盘输入等待。
好,以上比较容易实现,当电脑启动,显示出自己的字符串时,确实让人小小激动一下,就像《自己动手写操作系统》这本书里面写的那样,我们终于写了一个不依赖任何操作系统来执行的程序了,好神奇!
(几个月前,我看《自己动手写操作系统》开篇的时候,还对...
阅读全文 | 评论次数(2) | 浏览次数(1255) | 所属类型(汇编作业)

[2007-10-28 21:57] 实验15

assume cs:code
stack segment
  db 128 dup(0)
stack ends
code segment 
start: mov ax,stack
       mov ss,ax
       mov sp,128
       mov ax,cs
       mov ds,ax
       mov si,offset int9
       mov ax,0
       mov es,ax
       mov di,204h
       mov cx,offset int9end-offset int9
       ...
阅读全文 | 评论次数(1) | 浏览次数(907) | 所属类型(汇编作业)

[2007-10-27 18:07] 实验14

思路:
把各个字段取出来,转换好,按格式填写到一个临时字符串里面,最后一次性把字符串写到屏幕。
把从端口取信息并转换的过程封装成子程序getport。
assume cs:code
code segment 
   year: db "99/"
   month:db "12/"
   day:  db "31 "
  hour:  db '00:'
  minu:  db '00:'
  sec:   db '00',0
 start: mov ax,cs
        mov ds,ax 
        mov al,9    ;取得年份
        mov bx,o...
阅读全文 | 评论次数(1) | 浏览次数(644) | 所属类型(汇编作业)

[2007-10-26 22:32] 实验13.3

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
   row:db 2,4,6,8
 start:mov ax,cs
       mov ds,ax
       mov bx,offset ...
阅读全文 | 评论次数(1) | 浏览次数(657) | 所属类型(汇编作业)

[2007-10-26 22:12] 实验13.2

assume cs:code
code segment
start: mov ax,cs   ;安装程序
       mov ds,ax
       mov si,offset doi
       mov ax,0
       mov es,ax
       mov di,200h
       mov cx,offset doiend-offset doi
       cld
       rep movsb
       mov word ptr es:[7ch*4],200h
       mov word ptr es:[7ch*4+2],0
  ...
阅读全文 | 评论次数(1) | 浏览次数(656) | 所属类型(汇编作业)

[2007-10-26 21:48] 实验13.1

assume cs:code
data segment
  db 'welcome to masm!',0
data ends
code segment
start: mov ax,cs  ;安装程序
       mov ds,ax
       mov si,offset doi
       mov ax,0
       mov es,ax
       mov di,200h
       mov cx,offset doiend-offset doi
       cld
       rep movsb
       mov word ptr es:[...
阅读全文 | 评论次数(1) | 浏览次数(1370) | 所属类型(汇编作业)

[2007-10-25 21:46] 实验12

assume cs:code
code segment
   start: mov ax,0
          mov es,ax
          mov di,200h
          mov ax,code
          mov ds,ax
          mov si,offset do0
          mov cx,offset do0end-offset do0
          cld
          rep movsb
          mov word ptr es:[0],200h
          mov word...
阅读全文 | 评论次数(2) | 浏览次数(981) | 所属类型(汇编作业)

[2007-10-24 22:27] 实验11

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,4c00h
          int 21h
 letterc: push dx
    lps:  mov dl,[si] ...
阅读全文 | 评论次数(1) | 浏览次数(857) | 所属类型(汇编作业)

[2007-10-23 16:48] 课程设计1

感受:
    在前面实验做好的几个子程序的支持下,完成这个课程设计,基本上就只需要把填表的程序修改一下就好了,本质上来说多了一个字符串转换过程,把内容填到另外一个表里面。在调用前面写的子程序的时候,实在是很有畅快的感觉,以前不敢想像的功能,就这样像堆积木一样,堆出来了。
   写这个程序真正折磨我的地方在于调用多个子程序而产生的寄存器冲突问题,以及一个小小插曲---主循环太长了,loop跳不回来了。
   我个人的体会就是,子程序一多,各个寄存器都可能作为某个子程序的参数寄存器,子程序放在小程序里面运行的可能很正常,一放到大程序里面,运行结果就不对了,多半就是这个原因造成的。所以主程序...
阅读全文 | 评论次数(7) | 浏览次数(444) | 所属类型(汇编作业)

[2007-10-22 20:24] 实验10.3

dtoc:  push bx   ;参数dx,ax,ds(支持dx*65535+ax的32位数)
        push di
        push cx
        mov di,0  ;数位计数
  d_s1: mov cx,10
        call divdw  ;参数dx,ax,cx
        add cx,30h;把数码值转换成数码字符对应的ASCii码
         inc di  
        push cx
         mov cx,ax
        jcxz d_s2  ;如果商为零,则不再继续做除法
      ...
阅读全文 | 评论次数(1) | 浏览次数(660) | 所属类型(汇编作业)
页码数(2):  1  2