DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV BX, 8421A5H ;给定一个6位的16进制数
MOV AH, 2 ;向标准输出设备输出一个字符
MOV CX, 24 ;循环24次
again:
MOV DL, '0' ;
ADD BX, BX ;
JNC DISP ;
INC DL ;
DISP:
INT 21H
LOOP again
mov ah, 4ch ;程序结束
int 21h
MOV AH,4CH
INT 21H
CODES ENDS
END STAR
这里那里写错了怎么显示的不对。另外帮我解释一下again循环里那四句话什么意思。加分!
我那个是8421A5H 应该怎么改 我这么写的
但是输出结果就显示后四位然后都是0 84没显示怎么回事
楼上那个朋友说BUF 子单元的的 每个字节的 16 进制数 加上 30h
在哪里加
BX寄存器只能处理4位16进制数,你确要让它处理6位16进制数!肯定不行。
追问那用什么寄存器能处理6位的
追答 CODES SEGMENT我用我写的那种方法行吗 在我的那个基础上改
追答以上程序就是在你那个基础上改的,能支持32位的二进制数,当然也支持你的24位的二进制(即6位的16进制数)。
用单个的16位的寄存器无法完成,所以需要si、di两个寄存器联合实现。