回 帖 发 新 帖 刷新版面

主题:关于上机调试的小问题

我编辑的源程序在进行汇编和连接时都没问题,为什么在dos下运行后无运行结果,源程序如下:
dataseg  segment
  array1 dw  58,2,98,7,100,12,33,54,68,75
  max    dw  ?
dataseg  ends
stack    segment  stack
         dw  200 dup (?)
stack    ends
codeseg  segment
main  proc  far
     assume cs:codeseg,ds:dataseg,ss:stack
start:
     push   ds
     mov    ax,dataseg
     mov    ds,ax
     sub    ax,ax
     mov    bx,ax
     mov    ax,array1[bx]
     mov    cx,9
loop1:   add  bx,2
         cmp  ax,array1[bx]
         jg   next
         mov  ax,array1[bx]
next:    loop  loop1
         mov   max,ax
         mov   ah,02
         int   21h
main     endp
codeseg  ends
         end   start
 请各位高手赐教,

回复列表 (共1个回复)

沙发

dataseg  segment
  array1 dw  58,2,98,7,100,12,33,54,68,75
  max    dw  ?
dataseg  ends
stack    segment  stack
         dw  200 dup (?)
stack    ends
codeseg  segment
main  proc  far
     assume cs:codeseg,ds:dataseg,ss:stack
start:
     push   ds
     mov    ax,dataseg
     mov    ds,ax
     sub    ax,ax
     mov    bx,ax
     mov    ax,array1[bx]
     mov    cx,9
loop1:   add  bx,2
         cmp  ax,array1[bx]
         jg   next
         mov  ax,array1[bx]
next:    loop  loop1
         mov   max,ax
         mov   dx,ax
         mov   ah,02
         int   21h
         mov   ah,4ch
         int 21h
main     endp
codeseg  ends
         end   start

这样就行了
求的是最大值,然后输出
只不过该题会输出d
因为d的ASCII码值为100,本题中最大值就是100,所以输出d

我来回复

您尚未登录,请登录后再回复。点此登录或注册