您的位置:首页 > 其它

微机接口技术与汇编语言上机实验报告_汇编初步(intel8086)

2014-10-17 00:00 246 查看
本文出自:blog.csdn.net/svitter

实验环境:intel x386

一。要求:将3000H单元开始置数为00H-0FH

SSTACK	SEGMENT STACK
DW 32 DUP(?)
SSTACK	ENDS

CODE	SEGMENT
ASSUME CS:CODE, SS:SSTACK
START:	PUSH DS
XOR AX, AX
MOV DS, AX
MOV SI, 3000H
MOV CX, 16
AA1:	MOV [SI], AL
INC SI
INC AL
LOOP AA1 		;CX == 0? NEXT():AA1
MOV AX, 4C00H	;AH = 4C STOP CUR, RETURN
INT 21H
CODE 	ENDS
END START


二。要求:将3500H后8位置入3600H开始的8位

有两种解法

1.

SSTACK 	SEGMENT STACK
DW 32 DUP(?)
SSTACK 	ENDS

CODE	SEGMENT
ASSUME CS:CODE, SS:SSTACK
START:	PUSH DS
XOR AX, AX		;SET AX = 0000H
MOV DS, AX
CLD				;CLOSE INTERUPTE
MOV SI, 3500H
MOV BX, 3600H
MOV CX, 8		;FOR LOOP
AA1:	MOV AL, [SI]		;REP MOVSB 	;DS:[SI] -> ES:[DI], SI+1, DI+1
MOV [BX], AL
INC SI
INC BX
LOOP AA1		;CX == 0 ? NEXT() : AA1
MOV AX, 4C00H
INT 21H
CODE 	ENDS
END START

2.

SSTACK 	SEGMENT STACK
DW 32 DUP(?)
SSTACK 	ENDS

CODE	SEGMENT
ASSUME CS:CODE, SS:SSTACK
START:	PUSH DS
XOR AX, AX		;SET AX = 0000H
MOV DS, AX
CLD			;CLOSE INTERUPTE
MOV ES, AX
MOV SI, 3500H
MOV DI, 3600H
MOV CX, 8		;FOR LOOP
REP	MOVSB 		;DS:[SI] -> ES:[DI], SI+1, DI+1
MOV AX, 4C00H
INT 21H
CODE 	ENDS
END START


三。要求:将数据段中的str1赋给str2

DATA SEGMENT
STR1 DB 'ABCDEFGHIJKLN'
COUNT EQU $-STR1				;$的值表示count的偏移地址, 而str1是BUF所占用的字节数
STR2 DB COUNT DUP(0)
DATA ENDS
SSTACK SEGMENT STACK				;!!--DEF--!汇编程序发现这是堆栈段,执行的时候会直接使SSTACK -> SS
DB 200H DUP(0)
SSTACK ENDS

CODE SEGMENT
ASSUME DS:DATA, ES:DATA, SS:SSTACK, CS:CODE
;DATA(DATA SEGMENT)
;ES(EXTRA DATA SEGMENT)
;SSTACK -> SS(STACK SEGMENT)
;CODE -> CS(CODE SEGMENT)
START:
MOV	AX, DATA
MOV DS, AX
MOV ES, AX
LEA SI, STR1
LEA DI, STR2
MOV CX, COUNT
CLD							;Direction Flag to 0 (0 -> DF)
LP1:	MOVSB						;DS:[SI] -> ES:[DI], SI++, DI++
DEC CX						;
JNZ LP1 					;THREE SENTENCE == REP MOVESB, CX FOR COUNT
MOV AH, 4CH					;MOV AX, 4C00H
INT 21H
CODE	ENDS
END START


二。要求:将3500H后8位置入3600H开始的8位

四。要求:使用DOS接口输出一段字符串

DATA SEGMENT
MESSAGE DB 'please input your name!' , 0DH, 0AH, '$'
DATA ENDS
CODE SEGMENT
START:	MOV AH, 09H
MOV DX, SEG MESSAGE
MOV DS, DX
MOV DX, OFFSET MESSAGE
INT 21H
...
CODE ENDS
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Assembler_8086