回 帖 发 新 帖 刷新版面

主题:及求高手解决汇编难题,马上就要交了

把数据段的D_SEG中的AVGEND和附加段E_SEG 中的ADDEN_E相加,并把结果送如附加段中的RESVL(要用串指令LODSB 和STDSB)
D_SEG SEGMENT
 AUGEND DB 08H,0F3H,0ABH,35H
D_SEG ENDS
E_SEG SEGMENT
 ADDEND DB 13H,DACH,94H,55H
 RESLU DB 50 DUP(?)
E_SEG ENDS
另外还有
 从键盘上输入一行字符(以回车结束),如果这行字符比前一次输入的一行字符长度长,则保存该行字符,然后继续输入另一行字符;如果它比前一次输入的行短,则不保存这行字符。按下'$'键,则输入结束,最后将最长的一行字符显示出来。

回复列表 (共7个回复)

沙发


这要输入几行字符?

就一行好象没法比。

板凳

可以定义两个缓冲区吧,每次输入的时候,都先输入到第二个缓冲区中,如果第二个缓冲区中的第二个字节中的数字大于第一个缓冲区的,则把第二个中的复制到第一个中去…………………………

3 楼


感觉LZ应该是要输入3段字符串。。。

进行的是位数大小比较。。。

先比较前面2串输入的字符长度,将长的字符串数保留。然后再输入一串,再比较,最后输出最长的。

4 楼

思想是很容易想到的,可是要用代码实现就有点困难了,因为刚学,还是请各位高手帮帮忙了 给我编一下

5 楼


[em11][em10][em9][em8][em7][em5][em4][em3][em2][em1]

6 楼


这些作业题也不怎么难,你最好还是自己解决.

7 楼

我写了个,不知道对不对:
d_seg segment
augend db 08h,0f3h,0abh,35h
d_seg ends
e-seg segment
addend db  13h,dach,94h,55h
reslu db  50  dup(?)
e_seg ends
code segment
start:
      assume ds;d_seg  es:e_seg
      push ds
      sub ax,ax
      push(ax)

      mov dx,e_seg
      mov es,dx
      mov cx,4
rep:
      mov si,d_seg  
      lodsb 
      lea bx,s_seg
      add al,es:[bx]
      mov di,e_seg
      stdsb
      add di 
      add si
      add bx
      loop rep
      ret
code ends
     end start

     

我来回复

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