- [tomato] 希望这个问题能够从此解决掉哦! 11/14 18:59
- [killkk] 多谢多谢。。见笑见笑。 11/08 21:36
- [zhujinwu] 不错,思绪缜密。 11/07 07:32
- [killkk] 这不来了嘛,以后天天来。哈哈。。 08/26 12:34
- [rotapple] 同学你OUT了! 这么好的网都不来。真是过份哎!~~~ 08/26 11:33
[2011-10-15 02:45] 实验5.(5) 【有图有解释】
;===============================
; 实验5.(5)
;编写Code段中的代码,将a段和b段中
;的数据依次相加,将结果存到C段中
;堆栈实现 调试了好久才弄出来。0.0
;===============================
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
c1 segment
db 0,0,0,0,0,0,0,0
c1 ends
code segment
start: mov ax,c1 ;由于C标号编译不通过所以改为C1
mov ss,ax
mov sp,0ah ;设置堆栈指针
mov ax,a
mov es,ax ;设置附加段指向ES:0
mov ax,b
mov ds,ax ;设置数据段指向DS:0
mov bx,0
mov cx,8 ;计数器 循环8次
s: mov ax,[bx].8 ;将DS:8处字单元送入AX
mov dx,es:[bx].8 ;将ES:8处字单元送入DX
add dx,ax ;将二个单元处内容相加
push dx ;入栈
sub bx,2 ;指向上一个字
loop s
mov ax,4c00h
int 21h
code ends
end start
编译通过,结果对题(如图),但有个问题就是单步跟踪调试时老是出现错误。。不知是栈顶没设好还是什么原因。还望路过的大哥能指点迷精。。多谢 。
; 实验5.(5)
;编写Code段中的代码,将a段和b段中
;的数据依次相加,将结果存到C段中
;堆栈实现 调试了好久才弄出来。0.0
;===============================
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
c1 segment
db 0,0,0,0,0,0,0,0
c1 ends
code segment
start: mov ax,c1 ;由于C标号编译不通过所以改为C1
mov ss,ax
mov sp,0ah ;设置堆栈指针
mov ax,a
mov es,ax ;设置附加段指向ES:0
mov ax,b
mov ds,ax ;设置数据段指向DS:0
mov bx,0
mov cx,8 ;计数器 循环8次
s: mov ax,[bx].8 ;将DS:8处字单元送入AX
mov dx,es:[bx].8 ;将ES:8处字单元送入DX
add dx,ax ;将二个单元处内容相加
push dx ;入栈
sub bx,2 ;指向上一个字
loop s
mov ax,4c00h
int 21h
code ends
end start
编译通过,结果对题(如图),但有个问题就是单步跟踪调试时老是出现错误。。不知是栈顶没设好还是什么原因。还望路过的大哥能指点迷精。。多谢 。
评论次数(0) |
浏览次数(346) |
类型(汇编作业) |
收藏此文 |