我是初学者,帮忙改一下程序谢谢!

zheyong0501 2007-06-22 04:04:31
data segment
buf db 23h,16h,08h,20h,64h,8ah,91h,35h,2bh,0ffh
cn equ $-buf
data ends
stack segment
sta db 10 dup(?)
top equ $-sta
stack ends
code segment
assume cs:code, ds:data, ss:stack
start:
mov ax,data
mov ds,ax
mov bx,offset buf
mov cx,cn
dec cx
mov al,[bx]
inc bx
lp:cmp al,[bx]
jbe next
mov al,[bx]
next:inc bx
dec cx
jnz lp

mov bl,al
and al,0f0h
mov cl,4
shl al,cl
add al,30h
mov dl,al
mov ah,02h
int 21h
and bl,0fh
add bl,30h
mov dl,bl
mov ah,02h
int 21h

mov ah,4ch
int 21h
code ends
end start
怎样让这段程序找出最大值!要怎么改呢?急,谢谢大家了
...全文
162 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
行云边 2007-06-22
  • 打赏
  • 举报
回复
测试:
在命令行中进入TC根目录
输入 BGIOBJ EGAVGA TLIB LIB\GRAPHICS.LIB+EGAVGA
这2个命令将生成图形的连接文件
然后在程序的
initgraph(&driver,&mode,"");前加入:
registerbgidriver(EVAVGA_driver);
dongyi940333 2007-06-22
  • 打赏
  • 举报
回复
试试看这个:

data segment
buf db 23h,16h,08h,20h,64h,8ah,91h,35h,2bh,0ffh
cn equ $-buf
data ends



code segment
assume cs:code, ds:data
start:
mov ax,data

mov ds,ax



mov cx,cn

dec cx

mov si, 0

mov al, [si]

s:

cmp al, [si+1]

ja next

mov al, [si+1] ;保存最大的



next:

inc si

loop s

mov ah,4ch

int 21h

code ends

end start

初学不对之处请原谅
samsun2000 2007-06-22
  • 打赏
  • 举报
回复
那你把
lp:cmp al,[bx]
jbe next
mov al,[bx]
next:inc bx
dec cx
jnz lp
里面的第二句改成jge next看看
zheyong0501 2007-06-22
  • 打赏
  • 举报
回复
这是最小值啊
samsun2000 2007-06-22
  • 打赏
  • 举报
回复
lp:cmp al,[bx]
jbe next
mov al,[bx]
next:inc bx
dec cx
jnz lp
上面这段作完,al里面就是最大值啦。你到底要干嘛?

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧