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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  

[2009-06-20 21:20] 检测点16.1

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

[2009-06-20 21:17] 监测点15.1

(1)  

pushf  
call dword ptr ds:[0]


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

[2009-06-12 11:20] 实验10

1.显示子程序 

完整程序如下: 

data segment 

        db 'Welcome to masm!',0 

data ends 

code segment 

        assume cs:code,ds:data 
start: 

        mov dh,1              ;dh装行号(范围:1--25) 

        mov dl,1              ;dl装列号(范围:1--80)[注:每超过80等于行号自动加1] 

        mov cl,0cah          ...
阅读全文 | 评论次数(0) | 浏览次数(354) | 所属类型(作业)

[2009-06-12 11:16] 检测点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 ax,4c00h  ...
阅读全文 | 评论次数(0) | 浏览次数(359) | 所属类型(作业)

[2009-06-12 11:15] 检测点14.1

1)编程:读取CMOS RAM的2号单元的内容。  
程序如下:  
assume cs:code  
code segment  
start:  
      mov al,2    ;2号单元为‘分钟’  
       out 70h,al  ;把2号单元地址写入端口地址中  
       in al,71h   ;取得端口的数据即当前时间的‘分’。  

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

--------------------------------------...
阅读全文 | 评论次数(0) | 浏览次数(352) | 所属类型(作业)

[2009-06-10 22:48] 检测点13.2

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

解析及答案:  
此说法错误。用debug的e命令试验对FFFF:0单元写入信息和d命令查看得知无效。所以FFFF:0单元是只能读出不能写入的存储单元,所以不能更改其中的内容。  

------------------------------------------------------  
(2)int 19h中断例程,可以由dos提供。  

解析及答案:  
由书本“硬件系统检测和初始化完成后,调用int 19h进行操作系统的引导。从此将计算机交由操作系统控制。...
阅读全文 | 评论次数(1) | 浏览次数(473) | 所属类型(作业)

[2009-06-10 22:45] 检测点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  
        m...
阅读全文 | 评论次数(1) | 浏览次数(435) | 所属类型(作业)

[2009-06-10 22:44] 检测点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指向程序的第一条指令。 
...
阅读全文 | 评论次数(1) | 浏览次数(434) | 所属类型(作业)

[2009-06-05 10:51] 检测点9.3

assume cs:code   
code segment   
start:mov ax, 2000h   
   mov ds, ax   
   mov bx, 0   
s:mov cl, [bx]   
   mov ch, 0    
   ____________   
   inc bx   
   loop s     
ok:dec bx   
   mov dx, bx   

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

===================...
阅读全文 | 评论次数(1) | 浏览次数(384) | 所属类型(作业)

[2009-06-05 10:49] 检测点9.2

mov cl,[bx]  
      mov ch,0  
      jcxz ok   
      inc bx...
阅读全文 | 评论次数(1) | 浏览次数(423) | 所属类型(作业)
『 查看更多文章 』