主题:及求高手解决汇编难题,马上就要交了
eaglefly
[专家分:0] 发布于 2006-11-23 00:32:00
把数据段的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个回复)
沙发
天空未蓝 [专家分:360] 发布于 2006-11-20 17:58:00
这要输入几行字符?
就一行好象没法比。
板凳
救世猪猪 [专家分:560] 发布于 2006-11-20 22:30:00
可以定义两个缓冲区吧,每次输入的时候,都先输入到第二个缓冲区中,如果第二个缓冲区中的第二个字节中的数字大于第一个缓冲区的,则把第二个中的复制到第一个中去…………………………
3 楼
天空未蓝 [专家分:360] 发布于 2006-11-21 17:09:00
感觉LZ应该是要输入3段字符串。。。
进行的是位数大小比较。。。
先比较前面2串输入的字符长度,将长的字符串数保留。然后再输入一串,再比较,最后输出最长的。
4 楼
eaglefly [专家分:0] 发布于 2006-11-21 22:04:00
思想是很容易想到的,可是要用代码实现就有点困难了,因为刚学,还是请各位高手帮帮忙了 给我编一下
5 楼
proliker [专家分:0] 发布于 2006-11-23 08:04:00
[em11][em10][em9][em8][em7][em5][em4][em3][em2][em1]
6 楼
WinAsm [专家分:140] 发布于 2006-11-23 12:04:00
这些作业题也不怎么难,你最好还是自己解决.
7 楼
七夜飘雪 [专家分:500] 发布于 2006-11-27 22:04:00
我写了个,不知道对不对:
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
我来回复