彙編實驗5 循環程序設計

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章