问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用汇编语言输入十个8位有符号数,找出十个数的最大奇数与最小偶数

发布网友 发布时间:2023-12-08 04:51

我来回答

2个回答

热心网友 时间:2024-03-05 21:54

最简便方法:
将物理内存里的第一个值赋予MAX,MIN
然后用其与所有其他数值比较,
只要比MAX大则用新值赋予MAX
只要比MIN小则用新值赋予MIN追问有代码么,不会写代码

热心网友 时间:2024-03-05 21:55

我这里有16位的有符号数输入 以及 选择排序程序,比你的要求要复杂。
你可研究简化。现分享给你 !



        CODE  SEGMENT
              ASSUME    CS:CODE
      START:  PUSH      CS
              POP       DS
              PUSH      CS
              POP       ES
              CALL      INPUTNUM
              LEA       DI,@ARRAY
              MOV       CX,@NUM
              CALL      SELECTSORT
              MOV       AH,2
              MOV       DL,13
              INT       21H
              MOV       DL,10
              INT       21H
              LEA       SI,@ARRAY
              MOV       CX,@NUM
              CLD
         @1:
              LODSW
              CALL      DSPAXS
              LOOP      @1
              MOV       AH,4CH
              INT       21H

;===============================================================
;  键盘输入数值数组子程序(数组名为@array,元素个数存放在@num中)
;  可以是负数
;  采用字符串缓冲输入,避免原来键入后不能回退修改的问题 ! 
    INPUTNUM  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              PUSH      SI
              PUSH      DI
              PUSHF
      ; 对数组@array清零
              MOV       CX,100
              MOV       AX,0
              LEA       DI,@ARRAY
              REP       STOSW
              MOV       WORD PTR @NUM,0
      ; 输入的数据以一个空格分隔,以回车符结束输入
              LEA       DX,@STRA
              MOV       AH,10
              INT       21H
              MOV       CL,@STRN
              MOV       CH,0
              MOV       WORD PTR @STRM,CX
              LEA       SI,@STR
              CLD
              
              LEA       DI,@ARRAY
              MOV       WORD PTR @NUM,0
      @STIN:
              MOV       AX,0
              PUSH      AX
              MOV       BYTE PTR @SIGNN,0
    @AGAIN1:
              CMP       WORD PTR @STRM,0
              JE        @LINE0
              LODSB
              DEC       WORD PTR @STRM
              CMP       AL,' '
              JE        @LINE0
              CMP       AL,'-'
              JNE       @INPUT1
              MOV       BYTE PTR @SIGNN,1
              JMP       @AGAIN1
    @INPUT1:
              SUB       AL,30H
              MOV       AH,0
              MOV       BX,AX
              POP       AX
              MOV       CL,10
              MOV       CH,0
              MUL       CX
              ADD       AX,BX
              PUSH      AX
              JMP       @AGAIN1
     @LINE0:
              POP       AX
              CMP       BYTE PTR @SIGNN,1
              JNE       @INPUT2
              NEG       AX
    @INPUT2:
              MOV       WORD PTR[DI],AX
              INC       WORD PTR @NUM
              CMP       WORD PTR @STRM,0
              JE        @STINEND
              INC       DI
              INC       DI
              JMP       @STIN
   @STINEND:
              POPF
              POP       DI
              POP       SI
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
       @STRA  DB        255
       @STRN  DB        ?
        @STR  DB        255 DUP(?)
       @STRM  DW        0
      @ARRAY  DW        100 DUP(0)
        @NUM  DW        0
       @CHAR  DB        ?
      @SIGNN  DB        0
    INPUTNUM  ENDP

;=========================================
  SELECTSORT  PROC      NEAR
              ; 数组起始地址 存入 di,元素个数 存入 cx  
              ; MOV       AX,SEG A
              ; MOV       DS,AX
              ; MOV       ES,AX
              ; MOV       CX,NUM
              ; LEA       DI,A
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              PUSH      SI
              PUSH      DI
              PUSHF
              CMP       CX,1
              JE        @@SELE5
              DEC       CX          ; ################
              MOV       BX,0
    @@SELE1:
              PUSH      CX
              MOV       SI,DI
              INC       SI
              INC       SI          ; {SI=DI+2}
              PUSH      DI          ;{保存DI }
              MOV       AX,[DI][BX] ; {假设MAX 为第一个}
    @@SELE2:  MOV       DX,[SI][BX] ; {存储器到寄存器,节省时间}
              CMP       AX,DX
              JGE       @@SELE3     ; 从大到小,有符号数排序   #################
              MOV       DI,SI       ; {小于时,将SI替换DI,即将J替换I, 保存MAXI}
              MOV       AX,DX       ; {保存MAX 到AX}
    @@SELE3:  INC       SI
              INC       SI
              LOOP      @@SELE2
              MOV       SI,DI       ; {还原SI,即将I替换J}
              POP       DI          ; {取出栈中保存的I}
              CMP       DI,SI       ; {与J 比较}
              JE        @@SELE4     ;  {相同时不交换}
              MOV       AX,[DI][BX] ; {在内循环之外交换}
              XCHG      AX,[SI][BX]
              MOV       [DI][BX],AX
    @@SELE4:  INC       BX
              INC       BX
              POP       CX
              LOOP      @@SELE1
    @@SELE5:
              POPF
              POP       DI
              POP       SI
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
  SELECTSORT  ENDP
;==================================
; 输出有符号数,输出的数应放 ax中 
      DSPAXS  PROC      NEAR
              PUSH      AX
              OR        AX,AX
              JNS       @DSPAXS
              NEG       AX
              PUSH      AX
              PUSH      DX
              MOV       AH,2
              MOV       DL,'-'
              INT       21H
              POP       DX
              POP       AX
    @DSPAXS:
              CALL      DSPAX
              POP       AX
              RET
      DSPAXS  ENDP
     
;===============================
       DSPAX  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              PUSHF
              XOR       CX,CX
              MOV       BX,10
    @DSPAX1:
              XOR       DX,DX
              DIV       BX
              INC       CX
              OR        DX,30H
              PUSH      DX
              CMP       AX,0
              JNE       @DSPAX1
              MOV       AH,2
   @DISPAX2:
              POP       DX
              INT       21H
              LOOP      @DISPAX2
              MOV       DL,32
              INT       21H
              POPF
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
       DSPAX  ENDP
;================================  
 
        CODE  ENDS
              END       START

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 租房直接找房东还是中介好33 仿照示例的句式和修辞,就下列词语分别写出一句话。示例 吹捧... 什么是玛钢。 什么是玛钢 玛钢和钢还有铁有什么区别哪个更好。1 别人登我的微信被盗了我的登上去不是我原来的号为什么? 韭菜和生菜能同时吃吗?9 跳跳羊的中文台词 玛钢与碳钢区别7 玛钢是什么材料啊,8 天秤座删除微信整天打电话什么意思? 已经改过一次了,想再改一次,怎么改? Gateway of last resort is not ... 吃中药调理脱发会不会有副作用,还有会不会有狂脱期 通过指房向租房,如果遇到房东欺诈怎么办? 指房向租房平台上面有上海地区的房子吗?4 怎么跳过中介找房东租房? 求助,绕过中介直接找房东租房违法吗?9 地暖分水器是上面出热水还是下面出热水 巴乐兔和指房向哪个平台可以直接找房东租房的?72 浙江慈溪有疫情吗 住友厂由派遣兴明光有限公司直招进去的人待遇会和本厂直招的待遇...2 我的和密码忘了,但是实名认证过,请问怎么找回? 蒜是蔬菜吗32 喝水后抽的血测血糖6,2准确吗 记得,但是密码忘了,里面还有钱不知道怎么办? 李易祥演的副区长女儿电视剧是什么 遂峰寨杀朝廷命官是什么电视 盘点一部女主角叫晓云的电视剧,【免费高清】在线观看百度网盘资源_百度... 无怨无悔2 用一丝不苟含浪澎湃联播海燕惊心动魄殚精竭虑白手起家无怨无悔造...1 玛钢是什么钢?1 白垩纪末期后,有哪些远古动植物存活下了了。21 ...做正功,则反作用力一定做负功”这句话为什么是错的? 怎么一年内修改两次怎样才能一年修改两次? 东莞市兴明光实业有限公司怎么样?2 中证综合债券指数在哪里看? 下巴长痘痘还痒痒的怎么回事?82 我初中没毕业,想跑销售。没文化可以么? 为什么烧生菜不放蒜头不好吃呢1 浙江泓芯半导体有限公司怎么样 ...A.当作用力做正功时,反作用力一定做负功B.当作用力不做功时,反...