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

我的博客

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

[2008-08-08 12:06] 实验17 编写含多个功能子程序的中断例程

功能:安装一个新的int 7ch中断全程,实现通过逻辑扇区号对软盘进行读写。
参数说明:1.ah寄存器传递功能号:0表示读,1表示写
          2.bx寄存器传递要读写的扇区的逻辑扇区号
          3.es:bx指向存储读出数据或写入数据的内存区
备注:此程序增加了读出功能并显示,以测试写入内容是否正确。
assume cs:code
code segment 
start:      
      mov ax,cs
      mov ds,ax
      mov si,offset sqr
      mov ax,0
      mov e...
阅读全文 | 评论次数(3) | 浏览次数(825) | 所属类型(汇编作业)

[2008-08-05 16:33] 17.3 字符串的输入,是不是作者写得太复杂了,还是我没掌握要领?请各位指导

17.3 字符串的输入,是不是作者写得太复杂了,还是我没掌握要领?以下是我写的相同功能程序,请各位指导,谢谢!
assume cs:code 
code segment 
start:
       mov si,0
 s:    mov ah,0
       int 16h
       cmp ah,1ch
       je over
       cmp ah,0eh
       je backspace
       mov bx,0b8c0h
       mov es,bx       
       mov es:[si],al
       i...
阅读全文 | 评论次数(2) | 浏览次数(939) | 所属类型(汇编作业)

[2008-07-13 23:42] 16.3节显示pi圆周率小数点后位数的程序

16.3节以计算sin(x)值查表编程例子延伸到一个显示pi圆周率小数点后位数的程序,本程序不完全符合题意要求,假设只能显示小数点后10位,大于10位则显示输入错误。编写此程序本意只是掌握此种查表编程方法而已。各位多多指点
   
描述如下:    
功能:利用表,在两个数据集合之间建立映射关系,可以查表方法得到其对应数据。   
参数:es:si指向显存地址  ,用al向子程序传递小数点后位数 
assume cs:code 
code segment 
start:jmp short show 
table   dw dec0,dec1,dec2,dec3,dec4,dec...
阅读全文 | 评论次数(1) | 浏览次数(846) | 所属类型(汇编作业)

[2008-07-07 15:49] 推荐博文 有趣的一道题:将一组零乱数组,重新按序排列。(可能还有更好算法,请大家提出)

有趣的一道题:将一组零乱数组,重新按序排列  
描述如下:   
功能:要求将一组零乱数组,重新按序排列并放回原位。  
编程思路:将第一个数据与第二个数据比较,大于则调换位置,小于则不动,然后将调换后的第二个数据与第三个数据比较,大于则调换,小于则不动,依此类推直到最后一个数为一轮循环,经过9轮循环则可排
序完成跳出。,
assume cs:code, ds:data 
data segment 
   a dw 3,2,5,1,6,4,8,10,9,7 ;包含10个元素的零乱数组  
data ends 
code  segment 
start:mov cx,9   ...
阅读全文 | 评论次数(3) | 浏览次数(1376) | 所属类型(默认类型)

[2008-07-06 17:26] 推荐博文 在实验14的基础上改进,将实时时间以跑码灯形式显示

实验14:访问CMOS RAM  
描述如下:   
功能:将以“年/月/日 时:分:秒”的格式,显示当前的日期,时间,并以跑码灯形式显示。  
参数:es:si指向显存地址  ;ds:di指向数据段日期时间端口
编程思路:(此程序比原书上要求有稍作修改:可以实时扫描端口将时间不断更新)  
       因CMOS RAM年份及日期共6个单元,将此六个单元放入数据段,循环一次端口di+1,直到循环完.
assume cs:code 
data segment
           db 9,8,7,4,2,0
           db '/','/',' ',':',':...
阅读全文 | 评论次数(2) | 浏览次数(1136) | 所属类型(默认类型)

[2008-07-06 14:14] 实验15汇编作业

点击查看原图
第十五章例题:安装新的int9中断例程,使得原int9中断全程功能 得到扩展。   
功能:在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  
      push cs
      pop ds   ;设置新中断例程段地址
          
      mov ax,0...
阅读全文 | 评论次数(1) | 浏览次数(647) | 所属类型(汇编作业)

[2008-07-03 15:00] 第十四章 实验14汇编作业,请大家指点

实验14:访问CMOS RAM 
描述如下:  
功能:将以“年/月/日 时:分:秒”的格式,显示当前的日期,时间。 
参数:es:si指向显存地址 
编程思路:(此程序比原书上要求有稍作修改:可以实时扫描端口将时间不断更新) 
          因CM0S RAM中的时间前三个时间存放单元间隔2,后三个日期存放单元间隔1,所以我将其分为两部分偱环同时调用一个子程序
assume cs:code
code segment
  start:mov cx,3             
        push cx              ;供时间偱环三次
        ...
阅读全文 | 评论次数(7) | 浏览次数(930) | 所属类型(汇编作业)

[2008-06-20 20:48] 内中断的一个问题,请帮忙释疑

书中说:“当CPU内部有下面四种情况发生时,将产生相应的中断信息“: 
1. 除法错误 
2. 单步执行 
3. 执行INT0指令 
4. 执行INT指令 
我的问题是,如果我有一个新的中断信息 "5.执行...指令"需要产生新的中断信息。我将中断程序的入口地址写在0:0010处,那CPU就知道会提取5号中断类型码吗?我的意思是CPU是怎么知道在什么情况下提取相应的中断类型码的...
阅读全文 | 评论次数(3) | 浏览次数(674) | 所属类型(默认类型)

[2008-06-19 09:44] 最近才看到可以写自己的学习博客,贴上自己第11章学习作业-实验11

编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母。
描述如下:
名称:letterc
功能:将以0结尾的字符串中的小写字母转变成大写字母
参数:ds:si指向字符串首地址
编程思路:(此程序比原书上要求有稍作修改:已将其显示)
                      因此段字符串以0结尾,所以用到JCXZ指令。将ds:si字符移到CX,然后将CX内容与小写字母a(61h)作比较,如小于则直接转入显存,大于则减去20H后再转入显存,循环一次,si,di加1,直到遇到0为止。
assume cs:codesg
datasg segment
     ...
阅读全文 | 评论次数(5) | 浏览次数(651) | 所属类型(汇编作业)