注册 登录
编程论坛 汇编论坛

[求助]帮做几道题,MM要的,可我不会,不好交代

chenxinfu 发布于 2007-05-15 22:29, 1393 次点击
1,已知在BUF的起始处保存有N个字符的ASC码,编写汇编语言实现,将这组字符串送到缓冲区BUFR中,使字符串顺序于原来想反。
2,利用移位,传送,相加指令实现AX内容扩大10倍
3,在缓冲区VAR中连续存放3个16位无符号数,编程实现将其按递增关系排列,如果为有符号数,按递减排序

4实现将AL和BL中每一位依次交叉,得到16位字保存在DX中,例如。AL=01100101B,(BL)=11011010B,(DX)=1011011010011001B

5,在变量VAR1和变量VAR2中分别保存有两个字节型的正整数,实现1)当两数中有一个奇数时,将奇数存入VAR1,偶数存入VAR2. 2两数为奇数时,两变量内容不变。 3,两数为偶数时,两数缩小一倍后存入远处 。
13 回复
#2
菜鸟上路2007-05-15 22:51
#3
chenxinfu2007-05-15 23:04
版主就可怜下我吧,我们都没学汇编,你说我去哪编出来啊。挤恐怕都挤不出来吧
这几道题都是她课本里的,应该也不是很麻烦吧

[此贴子已经被作者于2007-5-15 23:05:48编辑过]

#4
I喜欢c2007-05-15 23:52


在MM面前何必逞强...

给你写了你也看不懂..
有什么意义?
#5
chenxinfu2007-05-16 09:02

晕,那她往我这推,我有什么办法啊。我说我不会,她说不会找你同学朋友做,我有苦说不出啊,无奈啊我。

#6
菜鸟上路2007-05-16 12:32

1、
data segment
BUF db 10 dup('d','3','g','6','l','a','s','2','0',',')
BUFR db 10
db ?
db 10 dup(0),0ah,0dh,'$'
data ends

code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
xor si, si
xor di, di
mov di, offset BUF
mov si, offset BUFR
add si, 10
mov cx, 10
next:
xor al, al
mov al, byte ptr BUF[di]
mov BUFR[si], al
inc di
dec si
loop next
code ends
end start

#7
菜鸟上路2007-05-16 12:34
其他的自己做吧
#8
爱以走远2007-05-16 12:40
2。 实现AX内容扩大10倍
是不是用一个存储单元来放数 应该是的吧
#9
爱以走远2007-05-16 12:42
3的个直接比较 不过在比较无符号转移的是用ja jb
有符号是用 jg jl
这点要注意点
#10
爱以走远2007-05-16 12:44
4的个 就bl直接移位 看cf 的值 是1就在dx加1 在把dx移位 不过要移两位
在弄al 这样就行拉
#11
爱以走远2007-05-16 12:47
5的个要复杂点 不过也不是什么难的 也是一个一个进行除2判断
满足一的个条件就用一个转移指令转到执行1 满足2的个就转到执行2 就这样
#12
菜鸟上路2007-05-16 12:52
以下是引用爱以走远在2007-5-16 12:40:00的发言:
2。 实现AX内容扩大10倍
是不是用一个存储单元来放数 应该是的吧

用寄存器或存储单元都可以吧

#13
爱以走远2007-05-16 12:54
恩 用寄存器还要简单点 呵呵
#14
chenxinfu2007-05-16 22:08

谢谢各位版主了。虽然给我很多的提示,我还是什么都看不懂,呵呵。还是要自己慢慢学啊。

1