汇编 实验5 第5题 代码 麻烦大鸟看对否
assume cs:codea segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
d segment
db 0,0,0,0,0,0,0,0
d ends
code segment
start:mov ax,a
mov ds,ax
mov ax,d
mov es,ax
mov bx,0
mov cx,8
s: mov dx,ds:
mov es:,dx
inc bx
loop s
mov ax,b
mov ds,ax
mov bx,0
mov dl,0
mov cx,8
s1:mov dl,
add es:,dl
inc bx
loop s1
mov ax,4c00h
int 21
code ends
end start
从没接触过任何编程 学起来真吃力啊{:5_100:} 明显不行,光是语法错误就一大堆,利用两次循环的思路是对的。
题目要求是对字节的操作,你用s: mov dx,ds:明显不合适。而s1:mov dl,虽然注意到这个问题,但这种用法是错误的。你将两个字节的数据传给一个字节,编译器会报错。还有就是最后返回时,是int 21h,H无论大小写,都要加上,在Debug下写源代码和在源程序中写代码是有区别的。编译器会将源程序中的数值默认为10进制,所以一定要加h,。。你好歹编译一下吧,哥们。以下提供正确方法,按照你的思路,两次循环:
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
d segment
db 0,0,0,0,0,0,0,0
d ends
code segment
start: mov ax,a
mov ds,ax
mov ax,b
mov es,ax
mov bx,0
mov cx,8
s: mov al,
add es:,al
inc bx
loop s
mov ax,d
mov ds,ax
mov bx,0
mov cx,8
s0: mov al,es:
mov ,al
inc bx
loop s0
mov ax,4c00h
int 21h
code ends
end start
注意一下你的代码风格,这个很重要。。 {:5_100:} 谢谢了 一定改
页:
[1]