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

我的博客

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

[2008-08-24 18:08] 第15章实验15 安装新的int 9中断例程

安装一个新的int 9中断例程,功能:在DOS下,按下‘A’键后,除非不在松开,如果松开,就显示满屏幕的'A';其他的键照常处理。

提示:按下一个键时产生的扫描码成为通码,松开一个键产生的扫名码称为断码。断码=通码+80h


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
   ...
阅读全文 | 评论次数(1) | 浏览次数(729) | 所属类型(课程实验)

[2008-08-21 01:38] 第14章实验14 访问CMOS RAM

编程:以“年/月/日 时:分:秒的格式,显示当前的日期、时间。

assume cs:code
code segment

  row:db 9,8,7,4,2,0

   start:mov ax,cs
         mov ds,ax
         mov si,offset row
         mov di,0
         mov cx,6
       s:push cx
         mov al,[si]
         out 70h,al
         in al,71h
         mov ah,al
  ...
阅读全文 | 评论次数(1) | 浏览次数(714) | 所属类型(课程实验)

[2008-08-19 18:02] 第13章实验13 编写、应用中断例程(3)

(3)下面的程序,分别在屏幕的第2、4、6、8行显示四句英文诗,补全程序。

assume cs:code
code segment
  s1: db 'Good,btter,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
 ...
阅读全文 | 评论次数(0) | 浏览次数(488) | 所属类型(课程实验)

[2008-08-19 16:46] 第13章实验13 编写、应用中断例程(2)

(2)编写并安装int 7ch中断例程,功能为完成loop指令的功能。
参数:(cx)=循环次数,(bx)=位移
以上中断例程安装完成功后,对下面的程序进行单步跟踪,尤其注意观察int ,iret指令执行前后CS,IP和栈中的状态。
在屏幕中间显示80个‘!’
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:[d...
阅读全文 | 评论次数(0) | 浏览次数(467) | 所属类型(课程实验)

[2008-08-19 15:21] 第13章实验13 编写、应用中断例程(1)

(1)编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。
参数:(dh)=行号, (dl)=列号, (cl)=颜色, ds:si指向字符串首地址
以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后CS、IP和栈中的状态。

assume cs:code
data segment
   db "welcome to masm!",0
data ends
code segment
   start:mov dh,10
         mov dl,10
         mov cl,2
...
阅读全文 | 评论次数(0) | 浏览次数(498) | 所属类型(课程实验)

[2008-08-15 23:26] 第12章实验12 编写0号中断的处理程序

;编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error!",然后返回到DOS。


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 cx,offset do0end-offset do0
        cld
        rep movsb ...
阅读全文 | 评论次数(2) | 浏览次数(289) | 所属类型(课程实验)

[2008-08-14 00:20] 第11章实验11 编写子程序

;编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母变成大写字母。

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
...
阅读全文 | 评论次数(1) | 浏览次数(271) | 所属类型(课程实验)

[2008-08-12 03:30] 第10章 课程设计1

assume cs:codesg 
data segment 
  db '1975','1976','1977','1978','1979','1980','1981','1982','1983' 
  db '1984','1985','1986','1987','1988','1989','1990','1991','1992' 
  db '1993','1994','1995' 

  dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 
  dd 345980,590827,803530,...
阅读全文 | 评论次数(2) | 浏览次数(248) | 所属类型(课程实验)

[2008-07-23 03:15] 第10章 实验10~3数值显示

应用举例:编程,将数据12666以十进制的形式在屏幕第8行第3列,用绿色显示出来,在显示时我们调用本次实验中的第一个子程序show_str

assume cs:code
data segment
  db 10 dup (0)
data ends
stack segment
  dw 16 dup (0)
stack ends
code segment
   start:mov ax,stack
         mov ss,ax
         mov sp,32
         mov ax,12666
         mov bx,data
   ...
阅读全文 | 评论次数(1) | 浏览次数(279) | 所属类型(课程实验)

[2008-07-22 18:02] 第10章 实验10~2解决除法溢出的问题

子程序描述
名称:divdw
功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。
参数:(ax)=dword型数据的低16位
      (dx)=dword型数据的高16位
      (cx)=除数
返回: (dx)=结果的高16位,(ax)=结果的低16位
      (cx)=余数

应用举例:计算 1000000/10(F4240H/0AH)

assume cs:code

code segment
   start:mov ax,4240h         ;被除数低16位
         mov dx,...
阅读全文 | 评论次数(1) | 浏览次数(293) | 所属类型(课程实验)
页码数(3):  1  2  3