汇编问题,在线等

[复制链接]
查看11 | 回复1 | 2010-5-9 11:45:01 | 显示全部楼层 |阅读模式
DATA SEGMENT
VAR DW 8888H
RESULT DW ?
DATA ENDS
;*************
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA

MOV DS,AX

MOV CX,0010H
XOR DX,DX

NT: SHL VAR,1

JC COUNT

LOOP NT

MOV RESULT,DX
MOV DL,BYTE PTR[RESULT]
MOV AH,2
INT 21H

JMP EXIT
COUNT:INC DX
JMP NT
EXIT:MOV AH,4CH

INT 21H
CODE ENDS

END START
这个程序是用来统计VAR中1的个数,并存于RESULT单元中,再输出到屏幕上,但为什么这个程序输出来的是一个方块呢?而不是我要的数字?望指点,程序应该怎么样修改?

回复

使用道具 举报

千问 | 2010-5-9 11:45:01 | 显示全部楼层
2号功能要求DL中存放待显示字符的ascii码,而你直接把数值放DL中显示了。把程序改成这样就行了:DATA SEGMENTVAR DW 8888HRESULT DW ?DATA ENDS;*************CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA
MOV DS,AX
MOV CX,0010H XOR DX,DX
NT: SHL VAR,1
JC COUNT
LOOP NT
MOV RESULT,DX MOV DL,BYTE PTR[
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行