请高手赐教汇编

FX_SKY 2010-03-24 04:25:58
DATA SEGMENT
SUM DW 0
DATA ENDS

STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS

CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV CX,50
MOV AX,0
MOV BX,1
NEXT: ADD AX,BX
INC BX
INC BX
DEC CX
JNE NEXT
MOV SUM,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
编译 链接生成了obj和exe文件,但执行后没有结果
...全文
85 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyb61917929 2010-03-25
  • 打赏
  • 举报
回复
11楼这把年纪的人绝对是高手啊
dididu1515 2010-03-25
  • 打赏
  • 举报
回复
;求奇数和,这样就完整了。
DATA SEGMENT
SUM DW 0
DATA ENDS

STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS

CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV CX,50
MOV AX,0
MOV BX,1
NEXT:
ADD AX,BX
INC BX
INC BX
DEC CX
JNE NEXT
MOV SUM,AX
mov si,ax
call show
mov ah,1
int 21h
MOV AH,4CH
INT 21H

show:
push cs
pop ds
mov dx,offset message
mov ah,9
int 21h
mov ax,si
xor cx,cx
mov bx,10
nx1:
mov dx,0
div bx
push dx
inc cx
cmp ax,0
jnz nx1
nx2:
pop ax
or al,30h
mov ah,0eh
int 10h
loop nx2
ret

message db 0dh,0ah,'1+3+5+7+...+99=$'

CODE ENDS
END START
budao3 2010-03-25
  • 打赏
  • 举报
回复
我上面給你的代碼就可以顯示出結果來了啊
源帅 2010-03-24
  • 打赏
  • 举报
回复
加上红色的试试
DATA SEGMENT
SUM DW 0,'$'
DATA ENDS

STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS

CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV CX,50
MOV AX,0
MOV BX,1
NEXT: ADD AX,BX
INC BX
INC BX
DEC CX
JNE NEXT
MOV SUM,AX
LEA DX,SUM
MOV AH, 09H
INT 21H

MOV AH,4CH
INT 21H
CODE ENDS
END START
源帅 2010-03-24
  • 打赏
  • 举报
回复
DATA SEGMENT
SUM DW 0,'$'
DATA ENDS

STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS

CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV CX,50
MOV AX,0
MOV BX,1
NEXT: ADD AX,BX
INC BX
INC BX
DEC CX
JNE NEXT
MOV SUM,AX
MOV AH, 09H
INT 21H

MOV AH,4CH
INT 21H
CODE ENDS
END START
FX_SKY 2010-03-24
  • 打赏
  • 举报
回复
哦,请问怎么加啊?
budao3 2010-03-24
  • 打赏
  • 举报
回复
如果你想要显示结果的话就需要加了,不想要看结果就没有必要了
FX_SKY 2010-03-24
  • 打赏
  • 举报
回复
恩,谢啦!
FX_SKY 2010-03-24
  • 打赏
  • 举报
回复
哦,那每个类似这样的程序都要加上这样的代码吗?
nanlingcg 2010-03-24
  • 打赏
  • 举报
回复
能看到啊!--只不向屏幕输出罢了...

-u
0B70:0000 B8620B MOV AX,0B62
0B70:0003 8ED8 MOV DS,AX
0B70:0005 B93200 MOV CX,0032
0B70:0008 B80000 MOV AX,0000
0B70:000B BB0100 MOV BX,0001
0B70:000E 03C3 ADD AX,BX
0B70:0010 43 INC BX
0B70:0011 43 INC BX
0B70:0012 49 DEC CX
0B70:0013 75F9 JNZ 000E
0B70:0015 A30000 MOV [0000],AX
0B70:0018 B44C MOV AH,4C
0B70:001A CD21 INT 21
0B70:001C 91 XCHG CX,AX
0B70:001D 2E CS:
0B70:001E A14A91 MOV AX,[914A]
-g cs:18

AX=09C4 BX=0065 CX=0000 DX=0000 SP=00C8 BP=0000 SI=0000 DI=0000
DS=0B62 ES=0B52 SS=0B63 CS=0B70 IP=0018 NV UP EI PL ZR NA PE NC
0B70:0018 B44C MOV AH,4C
-d ds:0 3
0B62:0000 C4 09 00 00 ....
-

09C4H=2500D 啊
budao3 2010-03-24
  • 打赏
  • 举报
回复
;-------------------------------------------------------;
;Show the AX value by Hex. ;
;Input : AX = Value to show ;
;Output : none ;
;-------------------------------------------------------;
ShowAXHex PROC NEAR
push ax
mov al, ah
call ShowALHex ;Show High Byte
pop ax ;Show Low Byte
ShowALHex::
push ax
shr al, 4
call ShowNibbleHex
pop ax
ShowNibbleHex::
and al, 0Fh
add al, 30h
cmp al, 3Ah
jc short @f ;0~9 (30h~39h)
add al, 7 ;A~F (41h~46h)
@@:
call BIOS_Display_Char
ret
ShowAXHex ENDP
;-------------------------------------------------------;
;Display a character to screen ;
;Input : ;
; AL = Character Code ;
;Output : ;
; none ;
;-------------------------------------------------------;
BIOS_Display_Char PROC NEAR PUBLIC
push ax
push bx
mov ah, 0Eh
mov bx, 000Fh
int 10h ;VBIOS write TTY
pop bx
pop ax
ret
BIOS_Display_Char ENDP
把上面的代码加到End start前面;然后在MOV SUM,AX 后面加一句代码 call ShowAXHex就会有结果显示出来了
budao3 2010-03-24
  • 打赏
  • 举报
回复
你這個程序没有显示结果的代码,程序跑完之后就结束了

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧