|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 微笑向暖~ 于 2017-11-4 15:53 编辑
程序如下,编写code段中的内容,将a段和b段中的数据依次相加,将结果存到c段中。
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
s:
mov al,ds:[bx]
add al,ds:[bx+16] //////////////////
mov ds:[bx+32],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
程序如下,编写code段中的代码,用push指令将a段中的前8个字型数据,逆序存储到b段中。
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
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 bx,0
mov ax,b
mov ss,ax
mov sp,16 ////////////////
mov cx,8
s:
push [bx]
inc bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
这两个程序加了///////////////的会不会矛盾,第一个add al,ds:[bx+16]一直往后叠加,而第二个mov sp,16则不是,(大家应该理解我说的什么意思)那么第一个可以写成第二个这样吗???
这两种形式都可以么?还是说其中有一种是错的?
求指教!!!
|
|