|
主题 : : 本章最后一题,数据逆序存放,莫明跳出 [已解决] |
回复[ 7次 ]
点击[ 810次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-01-14 12:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:8
注册日期:2008-01-12 10:11 |
代码如下:
;;;;;;;;;;;;;;;;;;;;;;
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,1000h
mov ss,ax
mov sp,16
mov bx,0
mov cx,8
mov ax,0
s:
mov al,ds:[bx] ;将一个字节的数据入al
mov ah,0
push ax
inc bx
loop s
mov cx,8
mov bx,0
mov ax,b
mov ds,ax
mov ax,0
s0:
pop ax
mov ds:[bx],al ;用ax的低8位改写b段数据
inc bx
loop s0
mov ax,4c00h
int 21h
code ends
end start
;;;;;;;;;;;;;;;;;;;;;;;;;;
程序运行到mov ds:[bx],al时跳出 | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-01-14 13:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:8
注册日期:2008-01-12 10:11 |
;更正了的代码,dw 0,0,0......一个0是一个字,我把他和上题搞混了:
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,1000h
mov ss,ax
mov sp,16
mov bx,0
mov cx,8
s:
push ds:[bx]
add bx,2
loop s
mov cx,8
mov bx,0
mov ax,b
mov ds,ax
s0:
pop ds:[bx]
add bx,2
loop s0
mov ax,4c00h
int 21h
code ends
end start
;程序仍然跳出但是结果是对的,是否是聪明的CPU自己做了后面的事情? | | |
|
|
|
|
[第2楼]
[ 回复时间:2008-01-14 13:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
mov ax,1000h
mov ss,ax
mov sp,16
----------
第一个问题:为什么要设置栈地址是1000H呢?这段内存是能随便用的?
第二个问题,两个8次循环里面的代码太重复了,可以考虑把他们合并在一块多好;)
程序仍然跳出但是结果是对的,是否是聪明的CPU自己做了后面的事情?
----------
cpu是不可能自作聪明的o(∩_∩)o...
这个问题涉及到后面的中断知识,楼主可以不管他,把栈设置大些就好了(和实验三一样),后面慢慢就学会到了。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-01-14 13:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
|
|
|
|
|
[第4楼]
[ 回复时间:2008-01-14 16:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:8
注册日期:2008-01-12 10:11 |
;回mouse,最后改进
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,16
mov bx,0
mov cx,8
s:
push ds:[bx]
add bx,2
loop s
mov ds,ax
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-01-14 17:01 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:8
注册日期:2008-01-12 10:11 |
|
|
|
|
|
[第6楼]
[ 回复时间:2008-01-15 08:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
|
|
|
|
|
[第7楼]
[ 回复时间:2010-06-01 09:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:8
注册日期:2008-01-12 10:11 |
此贴由 贴主 于 [ 2010-06-01 09:23 ] 结贴。 结贴原因:问题已解决 | | |
|