8086汇编编程问题 考试题。。 急 高手进 程序不是很难 但我不会。。

编写程序段。将内存区域STR1中的字符串“This is a string!”复制到STR2开始的内存单元中。
有会的么 高手请编一下。。用汇编 麻烦加一下注释 简单说一下什么意思就好 让我有个思路 考试的题。。 后天要考了 我还不会 分数50 够实惠吧。。 要正确哦。。 进来的高手编完这题还可以搜一下 我另个问题 也是50分 也是汇编的 麻烦了。。

已经汇编过了,是正确的。
data segment ;数据段
STR1 db 'This is a string!$' ;定义字符串,字符串的定义要以$为结尾。
STR2 DB 17 DUP(0) ;为STR2开拓17个空间用以存放This is a string!
data ends ;数据段结束

code segment ;代码段
assume ds:data,cs:code ;任何一个汇编程序都必须有的程序化语句
start: ;任何一个汇编程序都必须有的程序化语句,表示代码段开始
mov ax,data ;任何一个汇编程序都必须有的程序化语句,用于把data 指向ds
mov ds,ax ;任何一个汇编程序都必须有的程序化语句

mov bx,0
mov cx,17 ;定义循环次数
l: mov al,STR1[bx] ;把STR1中第一个数据送给寄存器al
mov STR2[bx],al ;把al中的数据送给STR2内存中的第一个位置
inc bx ;bx加1
loop l ;循环,循环17次,完成把 this is a string! 复制到STR2开始的内存单元中

code ends
end code
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-18
data segment ;定义数据段
str1 db "This is a string!"
str2 db 17 dup(?)
data ends
code segment;代码段
assume ds:data,cs:code
start:mov ax ,data;初始化
mov ds,ax
mov cx,17;定义传送次数
mov di,0
send:mov bx,str2[di];8086内存数据不能直接传送
mov str1[di],bx
inc di
loop send
code ends
end start
ok了,你试试。本回答被网友采纳
相似回答