EMU8086环境下运行的汇编语言是什么错误,需要怎么改?

程序在这:data segment data endsstack segment 'stack'sta dw 50 dup(0)top equ length stastack endscode segmentassume cs:code,ds:data,es:data,ss:stackstart:mov ax,data mov ds,ax mov es,ax mov ax,stack mov ss,ax mov sp,topkkk: mov ah,01h int 21h cmp al,1bh jz ppp cmp al,39h ja ttt sub al,30h xor ah,ah mov bp,axggg: mov ah,02h mov dl,07h int 21h mov cx,50huuu: loop uuu dec bp jnz gggttt: jmp kkkppp: mov ax,4c00h int 21hcode endsend start这里是错误(14) wrong parameters: MOV sp,length sta(14) probably no zero prefix for hex; or no 'h' suffix; or wrong addressing; or undefined var: length sta 请问如何修改?

程序有些问题,修正如下:

        DATA  SEGMENT
        DATA  ENDS

      STACKS  SEGMENT   STACK 'stack'
         STA  DW        50 DUP(0)
         TOP  EQU       LENGTH STA
      STACKS  ENDS

        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA,ES:DATA,SS:STACKS
      START:  MOV       AX,DATA
              MOV       DS,AX
              MOV       ES,AX
              MOV       AX,STACKS
              MOV       SS,AX
              MOV       SP,TOP
        KKK:  MOV       AH,01H
              INT       21H
              CMP       AL,13
              JZ        PPP
              CMP       AL,'1'
              JB        KKK
              CMP       AL,'9'
              JA        KKK
              AND       AL,0FH
              XOR       AH,AH
              MOV       BP,AX
        GGG:  MOV       AH,02H
              MOV       DL,07H
              INT       21H
              MOV       CX,50H
        UUU:  LOOP      UUU
              DEC       BP
              JNZ       GGG
        TTT:  JMP       KKK
        PPP:  MOV       AX,4C00H
              INT       21H
        CODE  ENDS
              END       START

追问

依然是这个错误 ,我是在EMU8086运行的

追答      STACKS  SEGMENT   STACK 'stack'
         STA  DW        50 DUP(0)
         TOP  DW        $
      STACKS  ENDS

追问

非常感谢,因为top没有定义,我之前不知道怎么定义的,加上你给的top dw $就好啦

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-14
这个问题真是好太高档了
相似回答