汇编网首页登录博客注册
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 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 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-18 16:43] 检测13.1

(1)在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?

IP存储在栈中占一个字 也就是2^16次方0~ffffH
(不能肯定,有疑义请指出)

还有个想法,既然IP可以通过改变栈中的值来改变,那么CS是要也可以改变,那么这时他的最大转移就是0:0000H~f000:ffffH了
 
 



(2)用7ch中断例程完成jmp near ptrs指令的功能,用bx向中断例程传送转移位移。
应用举例:在屏幕的第12行显示data段中,以0结尾的字符串

assume cs:code 
data segmen...
阅读全文 | 评论次数(4) | 浏览次数(495) | 所属类型(汇编作业)

[2008-08-14 11:08] 检测12.1

(1)用Debug查看内存,情况如下:
0000:0010 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00

则:4号中断源对应的中断处理程序的入口地址为:A700:6810

4号中断地址应该在0:0010-0:0013中,原题中并没显示
论坛中有的说是打印错误了
所以我把0000:0000该成了0000:0010


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

[2008-08-13 12:47] 检测11.4

下面的程序执行后:(ax)=?

   mov ax,0
   push ax
   popf       flag清0
   mov ax,0fff0h
   add ax,0010h
   pushf  此时ZF=1,PF=1,CF=1  既 ---- 0000 01-0 -1-1
   pop     (DEBUG得出)   ax=3047= 0011 0000 0100 0111
   and al,11000101b
   and ah,00001000b
   
     ax=0045H

-按理解应该都为0,当DEBUG出的结果并不都为0
其中原理...
阅读全文 | 评论次数(3) | 浏览次数(303) | 所属类型(汇编作业)

[2008-08-13 11:35] 检测11.3

(1)补全下面的程序,统计F000:0处32个字节中,大小在[32,128]的数据的个数。

       mov ax,of00h
      mov ds,ax
      mov bx,0
      mov dx,0
      mob cx,32
    s:mov al,[bx]
      cmp al,32
      jb s0      ---小于则转移---------------    
      cmp al,128
      ja s0     -----大于则转移---------------------
      inc dx
 ...
阅读全文 | 评论次数(1) | 浏览次数(285) | 所属类型(汇编作业)

[2008-08-12 20:23] 检测11.2

写出下面每条指令执行后,ZF,PF,SF,CF,OF等标志位的值

                 CF   OF   SF   ZF   PF    al= 
 sub al,al      0    0    0    1    1        0         
 mov al,10h     -    -    -    -    -        00010000
 add al,90h     0    0    1    0    1        10100000
 mov al,80h     -    -    -    -    -        100...
阅读全文 | 评论次数(1) | 浏览次数(284) | 所属类型(汇编作业)
页码数(3):  1  2  3