回 帖 发 新 帖 刷新版面

主题:[讨论]谁能解释这个?

DATAS SEGMENT
TABLE dw 0000h,0001h,0004h,0009h,0106h,0205h,0306h,0409h,0604h,0801h 
RESULT db 0dh,0ah,'The result is:' ,0dh,0ah
num db 0 
MATH db '^2 = ' 
RCT dw 0000h 
Msg3 db 0dh,0ah,'Press any key to Exit!$' 
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    
    lea di,num 
    mov ah,1 
    int 21h 
    
    mov [di],al 
    sub al,30h 
    sal al,1 
    lea si,TABLE 
    xor ah,ah 
    add si,ax 
    mov dx,[si] 
    add dl,30h 
    add dh,30h 
    lea di,RCT 
    mov [di],dh 
    mov [di+1],dl 

    lea dx,RESULT
    mov ah,9 
    int 21h 

Exit: 
    mov ah,1 
    int 21h 
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

看了这程序就是怎么也判断不出它的功能,运行了之后才知道的。
不知道用的什么原理。
另外 0dh,0ah,'Press any key to Exit!$'    '^2 = '没有用输出语句,为什么也能显示在屏幕上,真的不明白。
为什么Msg3 db 0dh,0ah,'Press any key to Exit!$可以自己输出 而且去掉后影响整个程序?

回复列表 (共1个回复)

沙发

为什么我运行的时候出现
fatal error L1101:invalid objiect module object file offset:1 record type:44
这是什么原因呢

我来回复

您尚未登录,请登录后再回复。点此登录或注册