回 帖 发 新 帖 刷新版面

主题:高手指导一下如何把结果输入和输出



请高手指导一下这个程序如何能像C语言那样把结果输入和输出呢
DATA  SEGMENT
      DATA1 DB 11H,22H
      DATA2 DB 33H,44H
      DATA3 DB 2 DUP(?)
DATA  ENDS
CODE  SEGMENT
      ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
       MOV DS,AX
       MOV CX,2
       CLC
       LEA SI,DATA1
       LEA DI,DATA2
       LEA BX,DATA3                                 
AGAIN: MOV AL, [SI]
       ADC AX, [DI]
       MOV [BX],AL
       INC SI
       INC DI
       INC BX
       LOOP  AGAIN 
       MOV AX,4C00H
       INT 21H                       
CODE ENDS
END START


回复列表 (共4个回复)

沙发

MOV AX,DATA
       MOV DS,AX
       MOV CX,2
       CLC
       LEA SI,DATA1
       LEA DI,DATA2
       LEA BX,DATA3
       mov ax,0                                 
AGAIN: MOV AL, [SI]  ;al=11h
       ADC Ah, [DI]  ;ah=33
       MOV [BX],AL
       INC SI
       INC DI
       INC BX
       LOOP  AGAIN

程序有错误,你想输出什么结果呢?是2211h+4433h=6644h 输出6644吗?

板凳

int 10
dos 中断

3 楼

自己写一个printf函数,以后都用的着 呵呵

我记得王爽写的那本汇编语言书上有,显示字符串的子程序和显示十进制数字的子程序,可以借鉴一下

4 楼


DATA  SEGMENT
      DATA1 DB 11H,22H
      DATA2 DB 33H,44H
      DATA3 DB 2 DUP(?)
DATA  ENDS
CODE  SEGMENT
      ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
       MOV DS,AX
       MOV CX,2
       CLC
       LEA SI,DATA1
       LEA DI,DATA2
       LEA BX,DATA3                                 
AGAIN: MOV AL, [SI]
       ADC AX, [DI]
       MOV [BX],AL
       INC SI
       INC DI
       INC BX
       LOOP  AGAIN 
       
       xor bx,bx
       mov cx,2
       call buffer


       MOV AX,4C00H
       INT 21H    

buffer:
settings:
       mov ax,0b800h
       mov es,ax
       mov bp,160
       mov si,78
bufferStart:
       mov al,byte  ptr DATA3[bx]
       mov es:[bp+si],al
       mov es:[bp+si+1],02h
       inc si
       inc si
       inc bx
       loop bufferStart
       ret
       
                          
CODE ENDS
END START

我来回复

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