|
主题 : : 我苦思了一个小时做的第六章实验五第五小题 [待解决] |
回复[ 36次 ]
点击[ 2882次 ] | |
|
|
|
|
[帖 主] [ 发表时间:2009-10-06 17:10 ] | |
荣誉值:0
信誉值:0
注册日期:2009-09-25 18:08 |
大家看看我做的对不对,经过调试功能实现.只是觉得方法有前妥当.大家指点一二
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
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov es,ax
mov ax,b
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,es:[bx]
add [bx],al
add bx,2
loop s
mov ax,c
mov es,ax
mov bx,0
mov cx,8
s1: mov ax,[bx]
mov es:[bx],ax
add bx,2
loop s1
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第23楼] [ 回复时间:2015-06-04 21:00 ] | |
荣誉值:0
信誉值:0
注册日期:2015-06-02 09:14 |
利用a、b、c段的数据是连续的,是否可以利用它们之间的间隔差16和32呢?
6章之前没看到es寄存器的用法。可以不用es、ss寄存器吗?
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
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov ds,ax
mov bx,0
mov cx,8
mov ax,0
s: mov al,[bx]
add al,[bx+16]
mov [bx+32],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start | | |
|