早教吧作业答案频道 -->其他-->
判断3个数的关系紧急求助!求完整汇编代码,最好加注释(至少在关键处加下撒),感激不尽!已知数据块BUF中存放3个字数据,是编写一个程序判断这3个数的关系:如果3个数相等,则显示“Allequal
题目详情
判断3个数的关系紧急求助!
求完整汇编代码,最好加注释(至少在关键处加下撒),感激不尽!
已知数据块BUF中存放3个字数据,是编写一个程序判断这3个数的关系:如果3个数相等,则显示“All equal.”;如果有任意两个数相等,则显示“Only two equal.”;如果三个数各不相同,则显示“All three different from each other.”.
求完整汇编代码,最好加注释(至少在关键处加下撒),感激不尽!
已知数据块BUF中存放3个字数据,是编写一个程序判断这3个数的关系:如果3个数相等,则显示“All equal.”;如果有任意两个数相等,则显示“Only two equal.”;如果三个数各不相同,则显示“All three different from each other.”.
▼优质解答
答案和解析
楼上的程序判断部分是对的,但程序无法编译通过(全角符号),结构上也有一个小问题.另外子程序用不着写3个,一个足够.
DATA SEGMENT
BUF DW 1,2,3 ;三个数据
DISP1 DB 'ALL EQUAL$'
DISP2 DB 'ONLY TWO equal$'
DISP3 DB 'ALL THREE DIFFRENT FROM EACH OTHER$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
main proc far
START:MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET BUF ;地址指针
MOV AX,[SI]
CMP AX,[SI+2] ;第一个数比第二个数
JNZ L1 ;1,2不相等则跳转
CMP AX,[SI+4] ;接上面,1,2相等的话比较1,3
JNZ L2
LEA DX,DISP1 ;不相等则跳转,显示两个相等
CALL PRINT1 ;否则全相等,调用子程序显示
JMP QUIT
L1:CMP AX,[SI+4] ;此处是在1,2不相等的条件下比较1,3
JZ L2 ;相等的话即有两个相等跳转至L2(显示DISP2)
MOV AX,[SI+2]
CMP AX,[SI+4] ;1,3不相等,1,2不相等,比较2,3
JZ L2
LEA DX,DISP3 ;2,3相等的话也是两个相等,同样跳转至L2
CALL PRINT1 ;否则没有相等的,调用子程序显示disp3
JMP QUIT
L2:
LEA DX,DISP2
CALL PRINT1
QUIT:MOV AX,4C00H
INT 21H
main endp
;
;子程序部分
PRINT1 PROC
MOV AH,09H
INT 21H ;调用功能显示都相等
RET
PRINT1 ENDP
CODE ENDS
END START
DATA SEGMENT
BUF DW 1,2,3 ;三个数据
DISP1 DB 'ALL EQUAL$'
DISP2 DB 'ONLY TWO equal$'
DISP3 DB 'ALL THREE DIFFRENT FROM EACH OTHER$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
main proc far
START:MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET BUF ;地址指针
MOV AX,[SI]
CMP AX,[SI+2] ;第一个数比第二个数
JNZ L1 ;1,2不相等则跳转
CMP AX,[SI+4] ;接上面,1,2相等的话比较1,3
JNZ L2
LEA DX,DISP1 ;不相等则跳转,显示两个相等
CALL PRINT1 ;否则全相等,调用子程序显示
JMP QUIT
L1:CMP AX,[SI+4] ;此处是在1,2不相等的条件下比较1,3
JZ L2 ;相等的话即有两个相等跳转至L2(显示DISP2)
MOV AX,[SI+2]
CMP AX,[SI+4] ;1,3不相等,1,2不相等,比较2,3
JZ L2
LEA DX,DISP3 ;2,3相等的话也是两个相等,同样跳转至L2
CALL PRINT1 ;否则没有相等的,调用子程序显示disp3
JMP QUIT
L2:
LEA DX,DISP2
CALL PRINT1
QUIT:MOV AX,4C00H
INT 21H
main endp
;
;子程序部分
PRINT1 PROC
MOV AH,09H
INT 21H ;调用功能显示都相等
RET
PRINT1 ENDP
CODE ENDS
END START
看了判断3个数的关系紧急求助!求完...的网友还看了以下:
高一集合题.已知[x]表示不超过x的最大整数已知[x]表示不超过x的最大整数,集合A={(x,y) 2020-05-13 …
最小的自然数是0,最小的一位数是不是1?自然数表示物体个数,那么0也表示物体个数.如果有一种物体的 2020-05-15 …
已知某数与24的最大公约数为4,最小公倍数为168,求此数.已知两个自然数的最大公约数为4,最小公 2020-07-18 …
设a@b=a.b+(a.b),a.b表示a与b的最小公倍数,(a.b)表示a与b的最大公约数,已知 2020-07-30 …
16位微型机怎么表示整数的?某型机字长16位,若采用定点补码整数表示数值,最高1位为符号位,其它1 2020-07-30 …
21是若干个连续的奇数中最小的一个数,32是若干个连续的偶数中最大的一个数,已知奇数和偶数共九个, 2020-08-02 …
已知:上周五股市收盘指数是1419点,本周收盘涨跌如下(正数表示涨,负数表示跌):-48,-1,+1 2020-11-06 …
已有a,b两个链表,要求把两个链表合并并升序排列。假定给定的a、b为升序排列。输入时,首先输入两个数 2020-12-05 …
解决问题.(1)一本书有60页,小明已经看了40页.请用最简分数表示已看的页数占总页数的几分之几,剩 2020-12-28 …
有谁能帮我,怎样在已知汽车基本参数的情况下,求汽车的最大爬坡度(主要表达车速、转速和转矩任意一项的我 2021-01-23 …