+ -
当前位置:首页 → 问答吧 → 汇编语言

汇编语言

时间:2010-12-17

来源:互联网

DATA SEGMENT
  LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;LED 0~9数的段码
  NUM DB 0,1,2,3,4,5,6,7,8
DATA ENDS

CODE SEGMENT
  ASSUME DS:DATA,CS:CODE,SS:STA
STA SEGMENT PARA STA
 A DB 100 DUP(?)
STA ENDS 
START:
  MOV AX,DATA ;设置代码段  
  MOV DX,AX
  LEA SI,NUM  
  MOV CX,9
  MOV DX,288H ;初始化8255A
  MOV AL,80H
  OUT DX,AL

TT:
  MOV AL,[SI]
  LEA BX,LED
  XLAT
  MOV AX,288H
  OUT DX,AX
  MOV AX,1000
BB:
  DEC AX
  JNZ BB
  INC SI
  LOOP TT

  MOV AH,1
  INT 21H
  RET
CODE ENDS
  END START



此代码是实现led依次显示从0~8的数,但程序运行后出现“no stack segment”,问题在哪呀?请高手指点

作者: fire99999   发布时间: 2010-12-17

你用到到指令ret ,此指令会用到堆栈把堆栈指针减2返回前面的程序地址, 但你没有设置堆栈段 , 所以编译无法通过

作者: zhuyi108   发布时间: 2010-12-17