中易网

用汇编语言写一个筛选10有符号的数的最大数和最小数

答案:5  悬赏:0  
解决时间 2021-02-06 09:14
写个那个算法就行
最佳答案
;----------------------------------
;排序
;负数显示补码如-1显示65535
;如想增加数据只需在a变量中添加,
;同时长度len要相应的更改
;----------------------------------
data segment
len dw 10
a dw -1,2,100,-100,99,-120,15,46,411,102
b dw 0
data ends

code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax

mov ax,data
mov ds,ax

mov cx,len
dec cx

loop1:
mov di,cx
mov bx,0
loop2:
mov ax,a[bx]
cmp a[bx+2],ax
jge cotinue
xchg ax,a[bx+2]
mov a[bx],ax

cotinue:
add bx,2
loop loop2
mov cx,di
loop loop1

mov si,0
loop3:
mov bx,a[si]
call bini
call crlf
add si,2
mov di,len
add di,len
cmp si,di
jl loop3

ret
main endp

bini proc near
mov cx,10000d
call bin
mov cx,1000d
call bin
mov cx,100d
call bin
mov cx,10d
call bin
mov cx,1d
call bin
ret
bini endp

bin proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,02h
int 21h
ret
bin endp

crlf proc near
mov dl,0ah
mov ah,02h
int 21h
mov dl,0dh
mov ah,02h
int 21
ret
crlf endp

code ends
end start
全部回答
嗯~ 存放10个数 让max=min=第一个数 然后遍历十个数 有比max大的 就将其值赋给max 有比min小的 就将其值赋给min 完成算法
DATA SEGMENT TAB DB 1,4,10,-1,-5,0,8,59,17,4 DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX LEA SI,TAB MOV BH,[SI] ;BH装max MOV BL,[SI] ;BL装min MOV CX,0009H L1: INC SI CMP [SI],BH JL L2 MOV BH,[SI] L2: CMP [SI],BL JG L3 MOV BL,[SI] L3: Loop L1 MOV DX,0000H MOV DL,BH CALL 输出显示函数(汇编里这个还比较麻烦) MOV DL,BL CALL 输出显示函数 MOV AH,4CH INT 21H CODE ENDS END START
1、读取第一个元素,作为最大数和最小数的初值; 2、用当前最大数和最小数与后续各个元素比较,要分清无符号数和带符号数比较的条件转移指令不同; 3、无符号数条件转移用JA、JB等指令,带符号数条件转移用JG、JL等指令; 4、根据比较结果,适时更新最大数和最小数。
title max & min data segment x1 db ?,'$' x2 db ?,'$' x3 db ?,'$' x4 db ?,'$' x5 db ?,'$' x6 db ?,'$' x7 db ?,'$' x8 db ?,'$' x9 db ?,'$' x10 db ?,'$' result db 4 dup('$') data ends stack segment para stack 'stack' db 100 dup(?) stack ends code segment assume cs:code,ds:data,es:data,ss:stack begin: mov ax,data mov ds,ax mov es,ax call readnum ;读入十个数,b并转成二进制数 ;输入数据以‘,’隔开且最后以','结束 lea di,result call max ;求最大值 call min ;求最小值 lea dx,result mov ah,9 int 21h mov ah,1 int 21h mov ah,4ch int 21h readnum proc push ax push cx push bx push dx lea bx,x1 call input lea bx,x2 call input lea bx,x3 call input lea bx,x4 call input lea bx,x5 call input lea bx,x6 call input lea bx,x7 call input lea bx,x8 call input lea bx,x9 call input lea bx,x10 call input pop dx pop bx pop cx pop ax ret readnum endp input proc mov ah,1 int 21h and al,0fh mov dl,al mov ah,1 int 21h cmp al,'/' jnc plo1 mov [bx],dl jmp htt plo1: and al,0fh mov [bx],al mov al,dl mov cl,10 mul cl add al,[bx] mov [bx],al mov ah,1 int 21h htt: ret input endp max proc push ax push cx push bx push dx lea bx,x1 mov al,[bx] lea bx,x2 call maxnum lea bx,x3 call maxnum lea bx,x4 call maxnum lea bx,x5 call maxnum lea bx,x6 call maxnum lea bx,x7 call maxnum lea bx,x8 call maxnum lea bx,x9 call maxnum lea bx,x10 call maxnum cmp al,10 jnc plo3 add al,30h mov [di],al inc di jmp htl plo3: call btobcd htl: pop dx pop bx pop cx pop ax ret max endp maxnum proc cmp al,[bx] jc plo2 jmp hll plo2: mov al,[bx] hll: ret maxnum endp btobcd proc push dx mov dl,0 again: sub al,0ah js next inc dl jmp again next: add al,0ah add dl,30h mov [di],dl inc di add al,30h mov [di],al inc di pop dx ret btobcd endp min proc push ax push cx push bx push dx lea bx,x1 mov al,[bx] lea bx,x2 call minnum lea bx,x3 call minnum lea bx,x4 call minnum lea bx,x5 call minnum lea bx,x6 call minnum lea bx,x7 call minnum lea bx,x8 call minnum lea bx,x9 call minnum lea bx,x10 call minnum cmp al,10 jnc plo5 add al,30h mov [di],al inc di jmp hhl plo5: call btobcd hhl: pop dx pop bx pop cx pop ax ret min endp minnum proc cmp al,[bx] jnc plo4 jmp hht plo4: mov al,[bx] hht: ret minnum endp code ends end begin
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
勒马喷剂真的能延时吗
长白朝鲜族自治县西兴木材检查站在什么地方啊
茗轩茶阁怎么去啊,有知道地址的么
i don't tell you这句话有什么错误
白鸽烘焙(中原万达店)在哪里啊,我有事要去这
什么手机桌面把时间变大
关于神明裁判的详细介绍
干白菜怎么煮
衣时代网德政店地址有知道的么?有点事想过去
楽菋怎么读
魔兽世界DK该怎么PK?
淘宝买鬼火摩托怎么样呢?
广州市私家车协会番禺运营中心我想知道这个在
工商银行的口令卡,U盾,还有密码器,哪个好
如何提高5D3的拍摄锐度
推荐资讯
金鼎大酒店我想知道这个在什么地方
PowerLed 2.72显示屏出现WAIT怎么办
dnf狂战士带永胜还是冰耀
斗一碗格拉条怎么去啊,有知道地址的么
芒果会员账号密码!
江西这几年环境的变化
全国地铁里程和条数
安宁区财政局地址在哪,我要去那里办事
宁夏汽车大世界在什么地方啊,我要过去处理事
刚出生的小狗 身上长了一些东西 不知道是什么
康佳led42fisooc可以上网看电视吗
长虹家具我想知道这个在什么地方
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?