首页   |   IT资讯   |   综合资讯   |   开发   |   软件   |   问答   |   网络技术   |   网络综合
更多:
当前位置:首页 » 手机数码
文章正文

我是学生请进来指导一下,分数全给你

类型:转载   责任编辑:asp   日期:2007/03/01

    

我是汇编初学者,下面几题,我抄下答案,但我不理解.  
  请大家解释一下程序为什么执行后会得到答案的内容.  
  (我总分不多了请原凉)  
   
  执行下列程序后,寄存器ax,bx和cx的值分别是多少?  
  org 1221h  
  num dw 12h  
  .  
  .  
  .  
  mov ax, num  
  mov bx, offset num  
  mov cl, byte ptr num+1  
  mov ch, type num  
  hlt  
   
  正确的答案是:ax=0012h,bx=1221h,cx=0200h  
  ----------------------------------------------  
  现有数据段如下:  
  data segment  
  org 30h  
  adr1 db 0,0,30h,0,30h  
  dw adr1  
  data ends  
  构成数据30000h的字存储单元有多少个?      
  正确的答案是:2个  
   
  它们的偏移值分别是多少?  
  正确的答案是:a.   0030h     b.   0033h  
  ----------------------------------------------  
  现在数据段如下:    
  d_seg segment  
  num1 db 12h,34h,56h,78h  
  num2 dw 10h,11h,21h,31h  
  db $-num2  
  db 10h   dup   (1,2,3)  
  d_seg ends  
  .  
  .  
  .  
  mov bx, ds:[0006h]  
  and bx, offh  
  and bx, [bx]  
  hlt  
   
  bx=____         正确的答案是:0313h  
   
  ---------------------------------------  
   
  若(ds)=1500h,   (ax)=0c56dh,   (cx)=0003h,   (psw)=0001h    
  执行rcl   ax,cl指令后,ax寄存器的内容是多少?  
        正确答案是:   (ax)=2b6fh.

推荐阅读

  • 《毁灭战士3:邪恶复苏》密码 [详细内容]
  • 办公室专用 LINKSYS8口交换机230元 [详细内容]
  • 家用也豪华 LINKSYS宽带路由售价330 [详细内容]
  • 破译垃圾邮件“变脸”密码 [详细内容]
  • C330之我用 [详细内容]
  • 中国工业设计年度大奖,长虹液晶电视折冠 [详细内容]
  • 远程修改你的FTP登录密码 [详细内容]
  • 网友回答:
    网友:braveheart2222

    执行下列程序后,寄存器ax,bx和cx的值分别是多少?  
      org 1221h       ;这句表明此句之后的地址从偏移1221h开始  
      num dw 12h     ;所以num的偏移地址是1221h  
      .  
      .  
      .  
      mov ax, num       ;ax=12h(就是0012h)  
      mov bx, offset num     ;此条指令执行后bx=num的偏移地址  
      mov cl, byte ptr num+1  
      mov ch, type num     ;num是字类型,所以type   num=2  
      hlt  
       
      所以:ax=0012h,bx=1221h,cx=0200h  
     

    网友:braveheart2222

     
      因0在内存中是30h,所以adr1   db   0,0,30h,0,30h相当于  
      adr1   db 0,30h,30h,0,30h  
      故第一和第二,第四和第五就形成了字3000h  
       
      所以构成数据30000h的字存储单元有2个      
     

    网友:braveheart2222

    不对啊,这第三题的答案为什么是bx=0313h呢!  
          and   bx, offh   ;这已经把bx的高字节清0了啊!!  
          and   bx, [bx]   ;bx不管与什么数进行"与"操作,高字节也不可能是03啊!!!!!  
          hlt        
      所以答案不可能是bx=0313h

    网友:lezi1022

    num2   的   db   $-num2应该怎样理解和计算  
      $代表当前的偏移量~减去num2,也就等于num2中的字节个数!即   =8

    网友:braveheart2222

    上面说的很好,$就是地址计数器,汇编器在汇编程序时,汇编到一句,就把该句的偏移地址存放在地址计数器中;如果当前语句是指令,就把该指令的第一个字节的偏移地址放在其中;

    .
      最佳浏览:1024X768 MSIE
    ©2007 jqmk.com.cn All Rights Reserved