请哪位高手帮忙用汇编语言编写一段程序,求三个带符号字节数据中的最大值,并将该最大值存入MAX字单元中.

请哪位高手帮忙用汇编语言编写一段程序,求三个带符号字节数据中的最大值,并将该最大值存入MAX字单元中.
我怎么把最大值输出,最大值为个数时可以输出,但最大值大于10时怎么输出?
DATA\x05SEGMENT
N1\x05DB \x051,4,50
MAX\x05DB \x050
DATA \x05ENDS
STACK\x05SEGMENT STACK
\x05DB \x05200 \x05 DUP(0)
STACK\x05ENDS
CODE\x05SEGMENT
\x05ASSUME CS:CODE,DS:DATA,SS:STACK
START:\x05MOV\x05AX,DATA
\x05MOV\x05DS,AX
\x05MOV \x05BX,OFFSET N1
\x05MOV \x05AL,[BX]
\x05CMP \x05AL,[BX+1]
\x05JG \x05S1
\x05MOV \x05AL,[BX+1]
S1:\x05CMP \x05AL,[BX+2]
\x05JG \x05S2
\x05MOV \x05AL,[BX+2]
S2:\x05MOV\x05MAX,AL
\x05MOV\x05DL,MAX
\x05ADD\x05DL,30H
\x05MOV\x05AH,2
\x05INT\x0521H
\x05MOV\x05AH,4CH
\x05INT\x0521H
CODE\x05ENDS
\x05END\x05START
请你把这个程序修改一下
其他人气:329 ℃时间:2019-09-22 07:28:12
优质解答
n1 db 1,99,-2
max db 0
.
.
mov bx,offset n1
mov al,[bx]
cmp al,[bx+1]
jg s1
mov al,[bx+1]
s1:
cmp al,[bx+2]
jg s2
mov al,[bx+2]
s2:
mov max,al谢谢,怎么把最大值在命令窗口输出。要实现输出比较麻烦:1、因为是带符号数,所以必须先判断正负,即高位是否为1,为1是负数(需求补码),否则为正。2、将该数除以100确定百位数字,余数再除以10确定十位数字,除以10后的余数为个位数字。3、将百位、十位及个位数字转换成ASCII码(即分别加上30H)4、分别将转换成ASCII码后的百位、十位及个位数字放入DX寄存器,用DOS的2号功能调用实现显示。说的很详细了,你应该可以自己看懂以下代码了。。。DATA SEGMENTN1 DB-1,-4,-50MAX DB0DATAENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOVBX,OFFSET N1 MOVAL,[BX] CMPAL,[BX+1] JGS1 MOVAL,[BX+1]S1: CMPAL,[BX+2] JGS2 MOVAL,[BX+2]S2: MOV MAX,ALtest al,80hjz zzzneg almov dl,'-'push axmov ah,2int 21hpop axzzz:mov ah,0mov dl,100div dlpush axmov ah,2mov dl,aladd dl,30hint 21hpop axmov al,ahmov ah,0mov dl,10div dladd ax,3030hpush axmov ah,2mov dl,alint 21hpop axmov dl,ahmov ah,2int 21h MOV AH,4CH INT 21HCODE ENDS END START
我来回答
类似推荐
请使用1024x768 IE6.0或更高版本浏览器浏览本站点,以保证最佳阅读效果。本页提供作业小助手,一起搜作业以及作业好帮手最新版!
版权所有 CopyRight © 2012-2024 作业小助手 All Rights Reserved. 手机版