CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

急!急!急!把伪指令换成真指令!非大虾勿进!

楼主Ericlee0904(辛巴)2003-07-04 00:09:16 在 其他开发语言 / 汇编语言 提问

要求:把以下程序中的所有伪指令换成真指令!datarea               SEGMENT                                                                                           ;  
                              ADDr               DW                 number  
                              number           DW                 5  
                              count             DW                 ?  
  datarea               ENDS  
  ;************************************************************************  
  prognam               SEGMENT                                                                                           ;  
  ;------------------------------------------------------------------------  
  main                   PROC             FAR  
                              ASSUME         CS:prognam,       DS:datarea      
  start:                  
                              ;set   up   stack   for   return  
                              PUSH             DS                                                                                   ;  
                              SUB               AX,AX                                                                             ;  
                              PUSH             AX                                                                                   ;  
                               
                              ;set   ds   register   to   current   data   segment  
                               
                              MOV               AX   ,   datarea                                                               ;  
                              MOV               DS   ,   AX                                                                         ;  
                              ;MAIN   PART   OF   PROGRAM     GOES   HERE                                           ;  
                               
                              MOV               CX,   0                                                                             ;initialize     C   to   0  
                              MOV               BX,   ADDr                                                                       ;  
                              MOV               AX,   [BX]                                                                       ;put   y   in   ax  
          repeat:       TEST             AX   ,   0ffffh                                                                 ;   test   y  
                              JZ                 exit                                                                               ;if   y=0,   get   exit  
                              JNS               shift                                                                             ;if   MSB=0,   C   unchangeed  
                              INC               CX                                                                                   ;else   ,C=C+1            
          shift:         SHL               AX,     1                                                                           ;shift   y   one   bit   left  
                              JMP               repeat                                                                           ;   repeat  
          exit:           MOV               count   ,   AX  
                              RET                                                                                                     ;   return   to   dos  
          main             ENDP  
          ;----------------------------------------------------------------------------------  
          prognam       ENDS  
          ;**********************************************************************************    
                              END               start                    
   
  真正的大虾们帮帮忙!  
  万分感谢!送分! 问题点数:0、回复次数:13Top

1 楼Areslee(懒虫易水)回复于 2003-07-04 09:41:54 得分 0

什么意思啊?Top

2 楼jerky(匿名)回复于 2003-07-04 12:42:04 得分 0

好像不是很难把  
  把它改为.com   程序格式  
  在将数据段的数据转移到寄存器中,充分利用寄存器  
  程序中有好多可以简化的地方啊  
  Top

3 楼Areslee(懒虫易水)回复于 2003-07-04 15:06:23 得分 0

什么叫把伪指令换成真指令?Top

4 楼teal(茶茶)回复于 2003-07-04 17:53:57 得分 0

什么指令是真指令?楼主能不能举一两个例子?Top

5 楼zuolihua(纷华)回复于 2003-07-04 18:21:18 得分 0

真指令就是能看得见的指令,伪指令就是看不见的指令,呵呵,我说对了吧,楼主Top

6 楼cui(蚊子王)回复于 2003-07-04 21:14:02 得分 0

有些东西是不能转的,那是汇编语言固有的格式,比如end   start,那是说,汇编文件到这里结束,并且指定程序入口,这个能用所谓的“真指令”代替?!Top

7 楼Ericlee0904(辛巴)回复于 2003-07-05 00:56:08 得分 0

简单的说:怎样把   ASSUME         CS:prognam,       DS:datarea     转成真指令!  
  在线!!!  
  Top

8 楼cui(蚊子王)回复于 2003-07-05 03:26:46 得分 0

一个字:晕Top

9 楼cui(蚊子王)回复于 2003-07-05 03:30:58 得分 0

ASSUME         CS:prognam,       DS:datarea     就和上面我说的end   start一样,是给编译器看的,他本身最终没有生成任何机器代码。你怎么转换!?Top

10 楼giantzz(平庸无能的政府)回复于 2003-07-05 06:49:51 得分 0

转换成真指令后要干什么???Top

11 楼teal(茶茶)回复于 2003-07-05 08:43:54 得分 0

反汇编后的代码,里面没有尾指令了    
   
  Disassembly   of   File:   C:\Documents   and   Settings\Administrator\桌面\EDIT2.EXE  
  Code   Offset   =   00000210,   Code   Size   =   00000022  
  Data   Offset   =   00000000,   Data   Size   =   00000000  
   
  Number   of   Objects   =   0001   (dec),   Imagebase   =   00000000h  
   
        Object01:                     RVA:   00000000   Offset:   00000210   Size:   00000022   Flags:   00000000  
   
   
  Number   of   Imported   Modules   =         0   (decimal)  
   
   
  +++++++++++++++++++   IMPORT   MODULE   DETAILS   +++++++++++++++  
   
  +++++++++++++++++++   EXPORTED   FUNCTIONS   ++++++++++++++++++  
  Number   of   Exported   Functions   =   0000   (decimal)  
   
   
   
   
  +++++++++++++++++++   ASSEMBLY   CODE   LISTING   ++++++++++++++++++  
  //**********************   Start   of   Code   in   Object   BinaryCode   **************  
  Program   Entry   Point   =   0001:0000  
   
   
   
  //**********************   Start   of   Code   in   Segment:   1   **************  
   
   
  //********************   Program   Entry   Point   ********  
  :0001.0000   1E                                           push   ds  
  :0001.0001   2BC0                                       sub   ax,   ax  
  :0001.0003   50                                           push   ax  
  :0001.0004   B80000                                   mov   ax,   0000  
  :0001.0007   8ED8                                       mov   ds,   ax  
  :0001.0009   B90000                                   mov   cx,   0000  
  :0001.000C   8B1E0000                               mov   bx,   [0000]  
  :0001.0010   8B07                                       mov   ax,   [bx]  
   
  *   Referenced   by   a   (U)nconditional   or   (C)onditional   Jump   at   Address:  
  |:0001.001C(U)  
  |  
  :0001.0012   A9FFFF                                   test   ax,   FFFF  
  :0001.0015   7407                                       je   001E  
  :0001.0017   7901                                       jns   001A  
  :0001.0019   41                                           inc   cx  
   
  *   Referenced   by   a   (U)nconditional   or   (C)onditional   Jump   at   Address:  
  |:0001.0017(C)  
  |  
  :0001.001A   D1E0                                       shl   ax,   01  
  :0001.001C   EBF4                                       jmp   0012  
   
   
   
  *   Referenced   by   a   (U)nconditional   or   (C)onditional   Jump   at   Address:  
  |:0001.0015(C)  
  |  
  :0001.001E   A30400                                   mov   word   ptr   [0004],   ax  
  :0001.0021   CB                                           retf  
  看看这个事不是你想要的Top

12 楼BraveHeart2222(勇敢的心2222)回复于 2003-07-05 21:26:59 得分 0

真是无奇不有,有意思!!!Top

13 楼taoist(托巴厄斯-杀手47)回复于 2003-07-06 06:15:28 得分 0

关注Top

相关问题

  • org伪指令的作用?
  • 什么叫做伪指令?
  • 伪指令ASSUME的作用是什么?
  • 关于汇编中的伪指令:LABEL.
  • ORG伪指令的作用是什么?
  • LABEL 伪指令的具体用途用法是什么????
  • 一个简单的宏伪指令的问题?
  • 问一个很菜的伪指令问题。
  • this和 label这两条伪指令有什么区别
  • MASM中.MODEL伪指令具体有什么作用?

关键词

  • 指令
  • ds
  • start
  • program
  • code
  • 伪指令
  • datarea
  • ax
  • 真指令
  • prognam

得分解答快速导航

  • 帖主:Ericlee0904

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo