0

我正在尝试组装此代码,但它返回错误。你能帮我修一下吗?谢谢。

INCLUDE irvine16.inc
.data
    array db 31h,32h,33h,34h    ;use db to define array
    COUNT = ($-array)       ;The $ operator gives the value of the location counter.
.code
main proc
    mov ax, @data       ;copy the address of the data segment  
    mov ds, ax      ;@data into the DS register
    mov bx, offset array    ;the offset operator returns the 16-bit offset of a label
    mov cx, COUNT   ;set up cx register as a counter register.  
    mov ah, 02      ;use function 2 of int 21h - display char stored in dl on screen
LP1: mov    dl, [bx]        ;LP1 is a label
    int 21h
    inc bx
    loop    LP1     ;decrement cx;  if cx not =0,loop back to label LP1.  
    mov ax, 4c00h
    int 21h
main endp
end main
4

1 回答 1

1

DGROUP是16位的概念,所以pmod的链接中的说明(是16位的代码,DGROUP是16位的概念,一定要使用16位的链接器)是真的。

如果那不能解决它,请使用您的内存模型(.model),Dos 对我来说是 16 年前的事,但 IIRC 某些段仅存在于某些内存模型中。

于 2011-11-18T08:12:16.910 回答