主题:高手指导一下如何把结果输入和输出
mt0508030112
[专家分:0] 发布于 2007-12-11 18:17:00
请高手指导一下这个程序如何能像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个回复)
沙发
小牛斑斑 [专家分:1210] 发布于 2007-12-12 21:45:00
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吗?
板凳
NickyOfNuist [专家分:90] 发布于 2007-12-12 22:27:00
int 10
dos 中断
3 楼
zhuzhuxiong [专家分:0] 发布于 2007-12-14 15:10:00
自己写一个printf函数,以后都用的着 呵呵
我记得王爽写的那本汇编语言书上有,显示字符串的子程序和显示十进制数字的子程序,可以借鉴一下
4 楼
DriEr [专家分:60] 发布于 2007-12-15 13:23:00
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
我来回复