1、編寫程序,實現將內存偏移地址爲 1000H 開始的連續 100 個字節送往偏移地址爲 2000H 開始的連續 100 個內存單元中。
源代碼:
DATA SEGMENT
ORG 1000H
X DB 100 DUP(1)
ORG 2000H
Y DB 100 DUP(2)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV CL,100
MOV SI,1000H
MOV DI,2000H
NEXT: MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
LOOP NEXT
MOV AH,4CH
INT 21H
CODE ENDS
END START
2、在數據段變量名爲 A 的數據區內有 10 個字符,編程實現將這 10 個字符以相反次序傳送到 附加段變量名爲 B 的內存區中。data segment A db '1234567890' n equ $-a B db n dup(?) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea si,a lea di,b add di,—— mov cx,__ move: mov al,[si] mov [di],al inc si —————— loop move mov ah,4ch int 21h code ends end start
源程序已部分給出,請將程序補充完整,並調試運行結果。
源程序:
data segment
A db '1234567890'
n equ $-a
B db n dup(?)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea si,a
lea di,b
add di,n
mov cx,n
move: mov al,[si]
mov [di],al
inc si
dec di
loop move
mov ah,4ch
int 21h
code ends
end start
3、數據段開始區域中,連續存放着 10 個帶符號數,編程序找出這 10 個數中最大的一個數,並將其存到該數據區的後面。
源代碼:
DATA SEGMENT
X DB 1,-2,3,10,-21,4,5,10,31,2
RESULT DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA SI,X
MOV CL,9
MOV AL,[SI]
NEXT: INC SI
CMP AL,[SI]G=0
JG MAX
MOV AL,[SI]
MAX: LOOP NEXT
MOV RESULT,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START