|
主题 : : 【实验5】第六小题两种解法 [待解决] |
回复[ 1次 ]
点击[ 355次 ] | |
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51 |
第一种, 利用push来实现:
D:\ASM>type lab56.asm
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 ax,b
mov ss,ax
mov sp,10h
mov bx,0
mov cx,8
s: push [bx]
add bx,2
loop s
mov ah,4ch
int 21h
code ends
end start
D:\ASM>
----------------------------------------------------------------------
第二种, 利用地址交换的方法
D:\ASM>type lab56a.asm
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 ax,b
mov es,ax
mov bx,0
mov cx,16
s: mov ax,[bx]
mov dx,bx ;保存bx的值
mov bx,cx ;利用cx的值来es的偏移地址
sub bx,2
mov es:[bx],al
mov bx,dx ;回复bx的值
inc bx
loop s
mov ah,4ch
int 21h
code ends
end start
D:\ASM> | | |