当前位置:编程学习 > 汇编语言 >>

汇编的一个问题。将Data1单元开始的0~15个数送到Data2单元开始的数据区中

汇编里的一个问题,将内存DATA1单元开始的0~15共16个数传送到DATA2单元开始的数据中。我的程序如下,但执行出来的是一串乱码,求高手指导。 DATA SEGMENT DATA1 DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 DATA2 DB 10H DUP(?) DATA ENDS ;************************************** STACK SEGMENT PARA STACK 'STACK' DB 100 DUP(?) STACK ENDS ;*************************************** CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV BX,DATA MOV DS,BX MOV ES,BX MOV AL,0 MOV CX,16 NEXT: MOV [SI],AL INC AL INC SI LOOP NEXT MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 MOV CX,16 REP MOVSB RET START ENDP CODE ENDS END START
追问:那你的输出结果是什么?
答案:DATA 	SEGMENT
DATA1	DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA2	DB 10H DUP(?)
DATA 	ENDS
;**************************************
STACK	SEGMENT PARA STACK 'STACK'
	DB 100 DUP(?)
STACK	ENDS
;***************************************
CODE	SEGMENT
	ASSUME CS:CODE,DS:DATA
START:	
	MOV BX,DATA
	MOV DS,BX
        MOV ES,BX
       	MOV SI,OFFSET DATA1
	    MOV DI,OFFSET DATA2
        MOV CX,16
        REP MOVSB
	     RET
CODE	 ENDS
        END  START

运行后没有错误 ,你的乱码是怎么回事?另外
 MOV AL,0
        MOV CX,16
NEXT:   MOV [SI],AL
        INC AL
        INC SI
        LOOP NEXT
是做什么用的?

上一个:51单片机汇编语言把ASCII码转换为压缩BCD码
下一个:求牛人把这行机器码【0x1F9F0001】翻译成ARM的汇编指令

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,