主题:指令的应用……
以下是本人写的一段小程序,还没运行过,因为时间有限,望各位高手指点一下啊!谢谢了啊!
功能是将S1中的10个字节的内容,取出奇数字节的内容,并按相反的顺序存储在S3中。
datarea segment
s1 db "UAVBOCLDIE"
s2 db 5 dup(?)
s3 db 5 dup(?)
datarea ends
;********************************************************************
stack segment
db 5 dup(?)
top label byte
stack ends
code segment ;define code segment
;--------------------------------------------------------------------
main proc far
assume cs:code,ds:datarea,ss:stack
start: ;starting execution address
;set up srack for return
push ds ;save old data segment
sub ax,ax ;put zero in AX
push ax ;save it on stack
;set DS register to current data segment
mov ax,datarea ;datarea segment addr
mov ds,ax ; into DS register
mov ax,stack
mov ss,ax
mov sp,offset top
;MAIN PART OF PROGRAM GOES HERE
mov cx,5
lea si,s1
lea di,s2
next:
mov al,[si]
mov [di],al
add si,2
inc di
loop next
push [di]
dec di
mov si,0
pop s3[si]
inc si
mov ah,09
int 21h
mov ah,4ch
int 21h
main endp ;end of main part of program
;----------------------------------------------------------------
code ends ;end of code segment
;****************************************************************
end start ;end assembly
功能是将S1中的10个字节的内容,取出奇数字节的内容,并按相反的顺序存储在S3中。
datarea segment
s1 db "UAVBOCLDIE"
s2 db 5 dup(?)
s3 db 5 dup(?)
datarea ends
;********************************************************************
stack segment
db 5 dup(?)
top label byte
stack ends
code segment ;define code segment
;--------------------------------------------------------------------
main proc far
assume cs:code,ds:datarea,ss:stack
start: ;starting execution address
;set up srack for return
push ds ;save old data segment
sub ax,ax ;put zero in AX
push ax ;save it on stack
;set DS register to current data segment
mov ax,datarea ;datarea segment addr
mov ds,ax ; into DS register
mov ax,stack
mov ss,ax
mov sp,offset top
;MAIN PART OF PROGRAM GOES HERE
mov cx,5
lea si,s1
lea di,s2
next:
mov al,[si]
mov [di],al
add si,2
inc di
loop next
push [di]
dec di
mov si,0
pop s3[si]
inc si
mov ah,09
int 21h
mov ah,4ch
int 21h
main endp ;end of main part of program
;----------------------------------------------------------------
code ends ;end of code segment
;****************************************************************
end start ;end assembly