【问题标题】:Compare numbers in Assembly比较大会中的数字
【发布时间】:2013-11-26 11:43:21
【问题描述】:

我必须在汇编中编写一个程序来比较两个数字。我没有这门语言的任何技能,所以请帮助我。您应该输入两个数字,然后程序必须写:“X 更大”或“Y 更大”。 X 和 Y 是输入。

【问题讨论】:

  • 家庭作业,我想。否则,你为什么要使用一种你不知道的硬语言来编写代码。无论如何,平台和 CPU 是什么 - DOS、Linux、Windows/Intel、ARM、MIPS?
  • 就像你have to wirte a program in assembly which compare two numbers 但你do not have any skills with this language 有一个相当严重的问题,只能通过掌握该语言的一些技能来解决,我认为这是给你这个任务的人的真正目标。

标签: assembly compare helpers


【解决方案1】:

检查这个:

.8086
.MODEL SMALL
.DATA
  CHAR DB " "
  MESSAGE1 DB 0AH,0DH,'****X IS GREATER THAN Y****','$'
  MESSAGE2 DB 0AH,0DH,'****Y IS GREATER THAN X****','$'
  MESSAGE3 DB 0AH,0DH,'****ALL ARE EQUAL****','$'

  INPUT_M DB 0AH,0DH,'ENTER CHARACTER',0DH,0AH,'$'
.CODE
  MAIN PROC
    MOV AX,@DATA
    MOV DS,AX

    MOV DX,OFFSET INPUT_M
    MOV AH,09
    INT 21H

    MOV AH,01
    INT 21H

    MOV CHAR,AL
    MOV DX,OFFSET INPUT_M

    MOV AH,09
    INT 21H

    MOV AH,01
    INT 21H

    CMP CHAR,AL
    JE  EQUAL
    JGE GREAT

    MOV DX,OFFSET MESSAGE2
    JMP PRINT
EQUAL:  MOV DX,OFFSET MESSAGE3
    JMP PRINT
    GREAT:  MOV DX,OFFSET MESSAGE1
PRINT:  MOV AH,09
        INT 21H
    MOV AH,4CH
    INT 21H
  MAIN ENDP
    END MAIN

【讨论】:

  • 假定 x86 上的 DOS。这不是给定的。
  • 请阅读thisthis - 从长远来看,提供现成的家庭作业解决方案对学生不利。
  • 好吧抱歉。我应该删除答案吗?
  • 这取决于你,也许阅读我为这个和未来“我懒得研究我应该研究的东西”案例提供的一些指导的链接?想想看:很快这些人可能是你的同事,你会为他们做他们的工作吗?
  • 谢谢伙伴.. 非常感谢您的指导。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多