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

我的博客

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

[2008-08-26 11:10] 检测16.2

下面的程序将data段中a处的8个数据累加,结果存储到b处的字中。补全程序。

assume cs:code,es:data

data segment
     a db 1,2,3,4,5,6,7,8
     b dw 0
data ends

code segment
    start:mov ax,data  -----------------------------
          mov es,ax    -------------------------------
          mov si,0
          mov cx,8
 ...
阅读全文 | 评论次数(1) | 浏览次数(696) | 所属类型(汇编作业)

[2008-08-26 10:50] 检测16.1

下面的程序将code中的a处的8个数据累加,结果存储到b处的dword中,补全程序。

code segment
     a dw 1,2,3,4,5,6,7,8
     b dd 0
  start:mov si,0
        mov cx,8
      s:mov ax,a[si]  ------------------------------   
        add word ptr b,ax      -----------------------
        adc word ptr b+2,0     --------------------...
阅读全文 | 评论次数(1) | 浏览次数(773) | 所属类型(汇编作业)

[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-24 11:57] 检测15.1

(1)仔细分析一下上面的int9 中断例程,看看是否可以精简一下?
  其实在我们的int 9中断例程中,模拟int指令调用原int 9中断例程的程序是可以精简的,因为在进入中断例程后,IF和TF都已经置0,没有必要在进行设置了。对于程序段:
 pushf
 pushf
 pop ax
 and ahm11111100b
 push ax
 popf
 call dword ptr ds:[0]

可以精简为:
  pushf       ---------------------------------
  call dword ptr ds:[0]  -------...
阅读全文 | 评论次数(1) | 浏览次数(820) | 所属类型(汇编作业)

[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-21 00:59] 检测14.2

编程:用加法和移位指令计算(ax)=(ax)*10
提示:(ax)*10=(ax)*2+(ax)*8
assume cs:code
code segment

 start:mov ax,16
       mov bx,ax
       shl ax,1
       mov cl,3
       shl bx,cl
       add ax,bx
      
       mov ax,4c00h
       int 21h
code ends
end start...
阅读全文 | 评论次数(2) | 浏览次数(721) | 所属类型(汇编作业)

[2008-08-21 00:11] 检测14.1

(1)编程:读取CMOS RAM的2号单元的内容。


assume cs:code
code segment

start:mov al,2
      out 70h,al
      in al,71h

      mov ax,4c00h
      int 21h
code ends
end start


(2)编程:向CMOS RAM的2号单元写入0。


assume cs:code
code segment

start:
      mov al,2
      out 70h,al
      mov al,0
   ...
阅读全文 | 评论次数(1) | 浏览次数(712) | 所属类型(汇编作业)

[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) | 所属类型(课程实验)
页码数(5):  1  2  3  4  5