多种数制显示的汇编语言编程实现(1)(2)
2015-01-04 01:06
导读:3.1 按二进制形式 DISPBXB PROC NEAR MOV CX,16 LP:ROL BX,1 JC D1 MOV DL,30H JMP OUTP D1:MOV DL,31H OUTP:MOV AH,2 INT 21H LOOP LP MOV DL,’B’ ;显示字母“B” MOV AH,2 IN
3.1 按二进制形式
DISPBXB PROC NEAR
MOV CX,16
LP:ROL BX,1
JC D1
MOV DL,30H
JMP OUTP
D1:MOV DL,31H
OUTP:MOV AH,2
INT 21H
LOOP LP
MOV DL,’B’ ;显示字母“B”
MOV AH,2
INT 21H
RET
DISPBXB ENDP
设(BX)=7FFFH,则输出格式为0111111111111111B,后面的大字字母B表示二进制形式,显示结果固定为十六位。
3.2 按十进制形式
DISPBXD PROC NEAR
MOV SI,10
XOR CX,CX
MOV AX,BX
NEXT:MOV DX,10
DIV SI
PUSH DX
INC CX
CMP AX,0 ;商为0则完成转换
JNZ NEXT
OUTP:POP DX
ADD DL,30H
MOV AH,2
INT 21H
LOOP OUTP
RET
DISPBXD ENDP
此程序在转换和显示时的循环控制方式和二进制形式的例子不一样,即显示结果的位数是不固定的。若(BX)=7FFFH=32767,则显示结果为5位:32767;若(BX)=00FFH=255,则显示结果为3位:255,与十进制的有效位数相同。
3.3 按十六进制形式
DISPBXH PROC NEAR
MOV CL,
MOV CH,4
NEXT:ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,3AH
JL OUTP
ADD AL,07H ;是A~F,要多加7
OUTP:MOV DL,AL
MOV AH,02H
INT 21H
DEC CH
CMP CH,0
JA NEXT
MOV DL,’H’ ;显示字母“H”
MOV AH,2
INT 21H
RET
DISPBXH ENDP
此程序的显示格式固定为四位,最后加上字母“H”表示为十六进制形式。设(BX)=7FFFH,则显示结果为:7FFFH;若(BX)=00FFH,则显示结果为:00FFH。
4 对有符号数显示的扩展应用
CMP BX,0
JGE ZS
MOV DL,’-’
MOV AH,2
INT 21H
ZS:CALL DISPBXD
5 结束语
以上介绍了在汇编语言程序设计中,根据不同的需要,如何把机器数按不同数制形式显示出来的方法,对于不具体介绍的八进制形式,只需将十进制显示的子程序(DISPBXD)中的除数由10改为8即可。各种方法中,主要是数据转换的方法不同,显示的功能调用指令是一样的,当然还可以用其它(比如字符串方式)方法调用显示功能,这里不再详细介绍。
(转载自科教范文网http://fw.nseac.com) 共2页: 1 [2] 下一页 论文出处(作者):
网页模糊归类算法的应用与实现
Visual C#的Excel编程