要求编写code段中代码,将a段和b段中数据依次相加,把结果存到
王爽第6章习题,要求编写code段中代码,将a段和b段中数据依次相加,把结果存到c段中assumecs:codea segment
ab1,2,3,4,5,6,7,8
a ends
b segment
ab 1,2,3,4,5,6,7,8
b ends
c segment
ab 0,0,0,0,0,0,0,0
c ends
code segment
start:?
code ends
end start
求详细解答 谢谢
huanxiangzhe2 发表于 2013-7-25 15:38 static/image/common/back.gif
logite这位鱼友,我想知道为什么我的程序执行不下去,帮我看看吧,我并不是想得到一段可执行代码。希望帮我 ...
c在masm中属于关键字。 assumecs:code
a segment
db1,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
;d段和ES挂勾
start: mov ax,d
mov es,ax
;把a段的数据传到d段
mov ax,a
mov ds,ax
mov bx,0
mov cx,8
s: mov al,ds:
mov es:,al
inc bx
loop s
;(b段和DS挂勾)ES段和B段相加
mov ax,b
mov ds,ax
mov bx,0
mov cx,8
s1: mov dl,ds:
add es:,dl
inc bx
loop s1
mov 4c00h
int 21h
code ends
end start 本帖最后由 huanxiangzhe2 于 2013-7-25 07:59 编辑
assume cs:code
code segment
start:mov ax,a
mov ds,ax
mov ax,c
mov ss,ax
mov sp,8H
mov cx,4H
mov bx,8H
s1:sub bx,2H
push ds:
loop s1
mov ax,b
mov ds,ax
mov bx,0H
mov cx,4H
s2:pop ax
add ax,
mov ,ax
add bx,2H
loop s2
mov cx,4H
s3:mov bx,8H
sub bx,2H
push ds:
loop s3
mov ax,4c00H
int 21H
code ends
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
c segment
db 0,0,0,0,0,0,0,0
c ends
end start
为什么我的这段代码,执行到S1就不行了?求高人指点。 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 ;设置a段为数据段
mov ax,b
mov es,ax ;b段为附加段
mov ax,d
mov ss,ax ;使用栈段来保存结果 由于本要用的编译器不能用c来做标号所以用了d
mov bx,0
mov cx,8 ;循环次数为8次
s:
mov al, ;将数据段0单元内容传送给al
add al,byte ptr es: ;再将b段也就是附加段的0单元内容与al相加
mov byte ptr ss:,al ;结果传送到第三个段ss段 这里只是把它看作一个段并没当作栈
inc bx ;bx加1 也就是偏移加1
loop s ;开始循环
mov ax,4c00h
int 21h
code ends
endstart logite这位鱼友,我想知道为什么我的程序执行不下去,帮我看看吧,我并不是想得到一段可执行代码。希望帮我解答一下我的错误,谢谢。 huanxiangzhe2 发表于 2013-7-25 15:38
logite这位鱼友,我想知道为什么我的程序执行不下去,帮我看看吧,我并不是想得到一段可执行代码。希望帮我 ...
什么不行了 请详细描述 我看了 s1 没发现问题 要不你把abc段移上面去 哥们,就是在按步执行的时候,s1循环两次就报错,你执行一下看看吧,不知道哪里错了。
编译器里一个段貌似不能用c来命名 C为关键字哦~~~如果朋友 使用高亮的 编辑器会发现它是高亮的。 {:1_1:}顶。。。。{:1_1:}
页:
[1]