有用的微机原理2013/4/17

一、指出下列程序中的错误:

STAKSG SEGMENT
                 DB 100DUP(?)
STA_SG  ENDS

DTSEG SEGMENT
DATA1 DB ?
DTSEG END

CDSEG SEGMENT
START: MOV DS,DATSEG
		MOV AL,34H
		ADD AL,4F
		MOV DATA,AL
START ENDP
CDSEG ENDS
		END



改正后:

STAKSG SEGMENT

     DB 100DUP(?)
STAKSG ENDS
CDSEG SEGMENT
ASSUME CS:CODESEG,DS:DTSEG,SS:STAKSG
START: MOV AX,DTSEG
		MOV DS,AX
		MOV AL,34H
		ADD AL,4FH
 		MOV DATA1,AL
		MOV AH,4CH
		INT 21H            //主意这两句的话是调用21中断的4CH号功能,退出程序
CDSEG ENDS
END

总结:汇编中不存在END.  在定义的段结束要以ENDS结束。主意段名称不要写错。 程序结束不能用ENDS,应该用MOV AH,4CH INT 21H。这两句话。要用ASSUME指令把段和段寄存器联系起来。段不能直接放到段寄存器中,应该先放到通用寄存器中,再把通用寄存器里的数据放到段寄存器中去。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值