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

来源:互联网 发布:java socket编程 编辑:程序博客网 时间:2024/06/09 15:13

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

STAKSG SEGMENT                 DB 100DUP(?)STA_SG  ENDSDTSEG SEGMENTDATA1 DB ?DTSEG ENDCDSEG SEGMENTSTART: MOV DS,DATSEGMOV AL,34HADD AL,4FMOV DATA,ALSTART ENDPCDSEG ENDSEND



改正后:

STAKSG SEGMENT     DB 100DUP(?)STAKSG ENDSCDSEG SEGMENTASSUME CS:CODESEG,DS:DTSEG,SS:STAKSGSTART: MOV AX,DTSEGMOV DS,AXMOV AL,34HADD AL,4FH MOV DATA1,ALMOV AH,4CHINT 21H            //主意这两句的话是调用21中断的4CH号功能,退出程序CDSEG ENDSEND

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


原创粉丝点击