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

我的博客

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

[2009-06-15 15:16] 16.2

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 
s: 
mov al,a[si] 
mov ah,0 
add b,ax 
inc si 
loop s 
mov ax,4c00h 
int 21h 
code ends 
end start...
阅读全文 | 评论次数(1) | 浏览次数(290) | 所属类型(汇编作业)

[2009-06-15 15:15] 16.1

下面的程序将code段中a处的8个数据累加,结果存储到b处的双字中,补全程序。 
assume cs:code 
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 b[0],ax 
        adc b[2],0 
        add si,2 
        loop s 

        mov ax,4c00h 
        int 21h ...
阅读全文 | 评论次数(2) | 浏览次数(432) | 所属类型(汇编作业)

[2009-06-15 15:15] 15.1

(1)可以精简为: 

pushf 

call dword ptr ds:[0] 

两条指令。 

(2)仔细分析上面程序中的主程序[第269页],看看有什么潜在的问题? 
改写方法:在pop ds:[2]指令后加入一条cli指令,并在mov es:[9*4+2],cs指令后加入一条sti指令即可。...
阅读全文 | 评论次数(2) | 浏览次数(439) | 所属类型(汇编作业)

[2009-06-15 15:14] 14.2

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

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 

  

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

[2009-06-15 15:13] 14.1

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

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

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

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

[2009-06-15 15:13] 13.2

判断下面说法的正误: 

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

错,FFFF:0 处的指令都是固化在ROM中的,并不是在内存中的,所以我们无法通过编程改变它。 

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

对,DOS可以对int 19h 中断例程重定义,但是在开机后第一次使用的int 19h 中断例程,并不是来自于内存,而是在ROM中,所以DOS不能影响开机后第一次执行的int 19h的中断例程。...
阅读全文 | 评论次数(2) | 浏览次数(492) | 所属类型(汇编作业)

[2009-06-15 15:12] 13.1

(1)由于只改IP值,故最大转移位移为-32768--32767 
(2) 
  lp: push bp 
      mov bp,sp 
      add [bp+2],bx 
      pop bp 
      iret...
阅读全文 | 评论次数(1) | 浏览次数(409) | 所属类型(汇编作业)

[2009-06-15 15:12] 12.1

(1) 用Debug查看内存,情况如下: 
0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00 
则3号中断源对应的中断处理程序的入口地址为:__039D:0016__。 
;答案是 0070:018B 

(2) 存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为:__N*4__。 
存储N号中断源对应的中断处理程序入口的段地址的内存单元的地址为N*4+2。...
阅读全文 | 评论次数(2) | 浏览次数(408) | 所属类型(汇编作业)

[2009-06-07 22:52] 9.3

检测点9.3 

补全程序,利用LOOP指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在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 b...
阅读全文 | 评论次数(1) | 浏览次数(412) | 所属类型(汇编作业)

[2009-06-07 22:52] 9.2

检测点9.2 

补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。 


assume         cs:code 
code        segment 
start:        mov ax,2000H 
        mov ds,ax 
        mov bx,0 
s:        mov cl,[bx];将内存字节单元ds:[bx]送cl 
        mov ch,0;将ch清0,如果(cl)=0,则找到第一个0值字节, 
                   于是(c...
阅读全文 | 评论次数(1) | 浏览次数(401) | 所属类型(汇编作业)
『 查看更多文章 』