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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  女儿有泪不在人前轻洒,女儿有胆走过艰难坎坷,青春无限好,加油!
  • 『姓名』:小樱桃
  • 『性别』:女『发送消息
  • 个人说明:热爱自然,热爱生活,喜欢追求进步的人生。。。。
  • 详细信息『加为好友』
学习动态
友情链接

[2009-06-15 14:56] 检测点16.1

点击查看原图
下面的程序将code段中a处的8个数据累加,结果存储到b处的dword中,补全程序。
完整程序如下:...
阅读全文 | 评论次数(1) | 浏览次数(534) | 所属类型(汇编作业)

[2009-06-15 14:30] 检测点15.1

点击查看原图
(2)仔细分析上面程序中的主程序[第269页],看看有什么潜在的问题?
在主程序中,如果在执行设置int 9中断例程的段地址和偏移地址的指令之间发生了键盘中断,则CPU将转去一个错误的地址执行,将发生错误。
    找出这样的程序段,改写它们,排除潜在的问题。
答:有两个错误;只要加上cli,sti,就OK了。cli,用于设置IF=0;  sti,用于设置IF=1; IF=0的时候,禁止其他的可屏蔽中断。
改写方法:在pop ds:[2]指令后加入一条cli指令,并在mov es:[9*4+2],cs指令后加入一条sti指令即可。...
阅读全文 | 评论次数(1) | 浏览次数(462) | 所属类型(汇编作业)

[2009-06-11 20:45] 检测点14.2

编程:用加法和移位指令计算(ax)=(ax)*10
提示:(ax)*10=(ax)*2+(ax)*8
完整程序如下:

assume cs:code
code segment
start:
        mov ax,1000h
        mov bx,ax
        shl bx,1            ;(ax)=(ax)*2
        mov cl,3
        shl ax,cl           ;(ax)=(ax)*8
        add ax,bx           ;(ax)=(ax)*10
        mov ...
阅读全文 | 评论次数(1) | 浏览次数(518) | 所属类型(汇编作业)

[2009-06-11 18:07] 检测点14.1

1)编程:读取CMOS RAM 的2号单元内容 : 
assume cs:code
code segment
start:
      mov al,2     ;先将2传给al  
     out 70h,al   ;把2号单元地址“2”送入70h端口  
      in al,71h    ;从71h读出2号单元的内容 ,此时al中装的是当前时间的‘分’。
  
      mov ax,4c00h
     int 21h
code ends
end start


(2)编程:向CMOS RAM 的2号单元写入0:   
assume cs:code ...
阅读全文 | 评论次数(1) | 浏览次数(531) | 所属类型(汇编作业)

[2009-06-10 21:11] 检测点13.2

判断下面说法的正误:
(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行bios中的硬件系统检测和初始化程序 

答:这种说法错误。因为该内存单元具有‘只读’属性。用debug的e命令试验对FFFF:0单元写入信息和d命令查看得知无效。所以FFFF:0单元是只能读而不能写入的存储单元,所以不能更改其中的内容。 
 
(2)int 19h中断例程,可以由dos提供。 
答: 这种说法是错误的。因为int 19h是在DOS启动之前就被执行的中断例程,这里面涉及到一个先后次序的问题,而此次序不能被打乱。...
阅读全文 | 评论次数(1) | 浏览次数(513) | 所属类型(汇编作业)

[2009-06-10 16:21] 检测点13.1

用7ch中断例程完成loop指令的功能。 

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

[2009-06-08 22:43] 检测点9.3

点击查看原图
补全程序,利用loop指令,实现在内存2000H段中查找第一个值为0的byte,找到后,将它的偏移地址存储在dx中。
assume cs:code
code segment
start:
       mov ax,2000h
       mov ds,ax
       mov bx,0
  s:
        mov cl,[bx]
        mov ch,0
        inc cx    ;填空内容
          inc bx
        loop s       
ok:
      dec bx
      mov dx,bx ...
阅读全文 | 评论次数(2) | 浏览次数(500) | 所属类型(汇编作业)

[2009-06-08 22:30] 检测点9.2

9.2 在内存2000H段中查找第一个值为0的byte,找到后将他的便宜地址存储在dx中,利用jcxz指令。 
assume cs:codesg  
codesg segment  
start:  
     mov ax,2000h  
     mov ds,ax  
     mov bx,0  
  s:  mov cl,[bx]    ;填空内容  
      mov ch,0        ;填空内容 
       jcxz ok         ;填空内容  
       inc bx          ;填空内容    
       loop s...
阅读全文 | 评论次数(1) | 浏览次数(465) | 所属类型(汇编作业)

[2009-06-06 23:11] 检测点9.1

(1)若要使jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?
完整程序如下:
assume cs:code,ds:data
data segment
    db 0,0,0 (填空内容)
data ends
code segment
start:  mov ax,data
    mov ds,ax
    mov bx,0
    jmp word ptr [bx+1]   ;段内间接转移
code ends
end start
(2)补全程序,使jmp指令执行后,CS:IP指向程序的第一条指令。

完整程序如下:
assu...
阅读全文 | 评论次数(1) | 浏览次数(449) | 所属类型(汇编作业)

[2009-06-03 10:35] 检测点10.5

(1)下面的程序执行后,ax中的数值为多少? 
assume cs:code  
stack segment  
  dw 8 dup (0)  
stack ends  
code segment  
start:mov ax,stack  
      mov ss,ax  
      mov sp,16  
      mov ds,ax  
      mov ax,0  
      call word ptr ds:[0EH]  
      inc ax  
      inc ax  
      inc ax  
      mov ax,4c...
阅读全文 | 评论次数(1) | 浏览次数(454) | 所属类型(汇编作业)
『 查看更多文章 』