首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

error A2108解决思路

2013-01-12 
error A2108运行一段代码如下:DATASEGMENTNUMDB0AH,0DH,*************姓名,0ah,0dh,$FDEQU0LINENEQU7D

error A2108
运行一段代码如下:
DATA    SEGMENT
NUM     DB  0AH,0DH,'*************  姓名',0ah,0dh,'$'
FD      EQU    0
LINEN   EQU    7
DATA    ENDS

STACK   SEGMENT    STACK
        DW  100H DUP(?)
STACK   ENDS

CODE    SEGMENT
        ASSUME   CS:CODE,SS:STACK,DS:DATA
START:  MOV   AX,DATA
        MOV   DS,AX
;========MAIN()===========
        CALL  CRLF
        CALL  CRLF
;------上半打印---------
        MOV   CH,05H
  LOP1: 
;------PRINT SPACE------
        MOV   CL,11                    ;循环控制
        SUB   CL,CH
 LOP2A: CALL  SPACE
        DEC   CL
        JNZ   LOP2A
;------PRINT 0-9-----
       MOV    CL,CH                      ;输出字符个数控制
       ADD    CL,CL
       DEC    CL
 LOP2B:
;======题目10 End=======
        MOV   AL,FD                       ;输出字符
mov  dl,al
add   dl,'0'
mov  dh,ch        
call writecc
        DEC   CL
        JNZ   LOP2B
;------PRINT  0-9-End-
        CALL  CRLF
        INC   DH  ;题目3
        INC   CH
        CMP   CH,LINEN
        JBE   LOP1
;-----上半打印结束---------
;-----下半打印结束---------
        DEC   DH
        DEC   DH
        MOV   CH,LINEN-1
XLOP1: 
;------PRINT SPACE------
        MOV   CL,11
        SUB   CL,CH
XLOP2A: CALL  SPACE
        DEC   CL
        JNZ   XLOP2A
;------PRINT 0-9-----
        MOV    CL,CH
        ADD    CL,CL
        DEC    CL


XLOP2B:
        MOV   AL,FD
mov  dl,al
add   dl,'0'
mov  dh,ch        
call writecc

        DEC   CL
        JNZ   XLOP2B
;------PRINT  0-9-End-
        CALL  CRLF
        DEC   CH
        JNZ   XLOP1

;-----下半打印结束---------
        MOV   DX,OFFSET  NUM
        MOV   AH,9
        INT   21H
        MOV   AH,1
        INT   21H
;===========================
        MOV   AX,4C00H
        INT   21H

;------------------------
CRLF    PROC  NEAR                 ;输出换行
        PUSH  AX
        PUSH  DX
        MOV   AH,2
        MOV   DL,0AH
        INT   21H
        MOV   DL,0DH
        INT   21H
        POP   DX
        POP   AX
        RET
CRLF    ENDP

SPACE   PROC  NEAR                     ;输出空格
        PUSH  AX  
        PUSH  DX 
        MOV    AH,2
        MOV    DL,''
        INT    21H
        POP   DX
        POP   AX
        RET
SPACE   ENDP
;----------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;色彩字符;;;;;;;;;;;;;;;;;;;;;;;;;;;
;程序名称:WriteCC
;程序功能:色彩字符输出子程序
;入口条件:DL=输出字符的Ascll,DH=颜色值(0--9)
;    出口:无
;影响寄存器:无
col     DB 00000011b,000000010b,00000100b,00001001b,000000001b
         DB 00000110b,00001101b,00001100b,00000010b,00000101b
WriteCC PROC    near               
        push    AX
        push    bx
        push    cx
        push    dx


        push    si
        xor      AH,AH
        MOV     AL,dh
        MOV     si,AX
        MOV     AH,9
        MOV     AL,DL
        MOV     bh,0
        MOV     bl,col[si]
        MOV     cx,1
        INT      10h        
        MOV     AH,3
        INT      10h       
        MOV     AH,2
        inc       DL
        INT     10h        
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     AX
        ret
WriteCC ENDP


CODE    ENDS
        END   START





最后提示一个错误:test.asm(104):error A2108 empty string



不知错在哪,求大神解决!!
[解决办法]

引用:
是不是运行环境的错误啊?我的提示,zuanshi.obj:fatal error L1101:invalid object module pos:1 record type :0c到底错在哪呢.........急急
这个错误应该是生成的 obj 文件格式不对。你这个是 dos16 类的程序,要么用 Masm5 进行汇编,高版本的则是 ml /c 命令,别加 /coff 之类的选项。

引用:
提示的错误信息是:no stack segment 是不是代码哪有错误
这应该只是个警告而非错误吧,如果只是这个问题,是不影响 exe 文件的生成的,一般也不会影响程序的正常运行。而且,按照你在 #11 楼的代码,是不应该有这个提示的,因为你有定义 stack 段并指定了其为缺省的堆栈段。

你上面的代码,我用 Masm6 编译链接完全正常:
M:\>ml /c k5.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: k5.asm

M:\>e:link k5.obj;

Microsoft (R) Segmented-Executable Linker  Version 5.13
Copyright (C) Microsoft Corp 1984-1991.  All rights reserved.


M:\>dir k5*
 Volume in drive M is RAMDISK
 Volume Serial Number is 3C4A-F68F

 Directory of M:\

2012-08-23  09:12             2,323 K5.ASM
2012-08-23  09:19             1,255 K5.EXE


2012-08-23  09:19               359 K5.OBJ
               3 File(s)          3,937 bytes

热点排行