急!!

houximing001 2003-12-12 02:29:25
十六进制数转化成ascii码程序
请写源代码,急!
...全文
10 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Samuel 2003-12-14
源程序:
data segment
a db 2bh
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov al,a
mov cl,4
shr al,cl
call tran
mov ah,02h
int 21h
mov al,a
and al,0fh
call tran
mov ah,02h
int 21h
mov dl,'h'
int 21h
mov ah,4ch
int 21h
tran proc
cmp al,10
jae add37
add al,30h
jmp next
add37: add al,37h
next: mov dl,al
ret
tran endp
code ends
end start
  • 打赏
  • 举报
回复
紫郢剑侠 2003-12-12
屏幕输出十进制的一个宏定义

作者:JennyVenus()
作者网站:

文章源自:csdn论坛 http://www.csdn.net

收藏日期:2003-09-23


 

 
DOSSEG
.MODEL SMALL
.DATA
.STACK
.CODE
BEGIN:
MOV AX,0
NEXT:
PRINTVAL AX
INC AX
CMP AX, 10000
JB NEXT
EXIT:
MOV AH,4CH
INT 21H
END BEGIN
这个是主程序,应该不太难懂吧。就是调用了PRINTVAL这个宏来实现打印一个寄存器或者内存的值。

而PRINTVAL宏的作用就是在屏幕上输出一个无符号的整形数。
PRINTVAL MACRO X
LOCAL PRINTTEMP2,PRINTT1,PRINTT2,PRINTT3,PRINTT4,PRINTT5 ;局部标号
PUSH AX ;保存堆栈
PUSH BX
PUSH CX
PUSH DX
MOV AX,X ;把要打印的数据放在AX中
MOV BX,10 ;被除数放在BX中,被除数=10
MOV DX,0 ;余数放在DX中
MOV CX,5 ;一个整形数最多5位,所以循环5次
PRINTTEMP2:
DIV BX ;DX:AX / BX, 结果放在AX中,余数放在DX中,如果DX:AX = 5678
;那么现在DX = 8 AX = 567
PUSH DX ;把8放入堆栈
MOV DX,0 ;设置DX:AX = 567;否则除数就会变得更大而出现错误
LOOP PRINTTEMP2 ;循环五次,这样堆栈里面分别放入 8 7 6 5 0 五个数

POP AX ;弹出最高位,目前是0
MOV BH,AL ;放在BH中 BH = 0
POP AX
MOV BL,AL ;BL = 5
POP AX
MOV CH,AL ;CH = 6
POP AX
MOV CL,AL ;CL = 7
;POP AX
;PUSH AX
CMP BH,0 ;如果BH不等于0那么打印他 -- 不大印第一个0
JA PRINTT1
CMP BL,0 ;如果BL不等于0那么打印他 -- 打印5
JA PRINTT2
CMP CH,0 ;如果CH不等于0那么打印他 -- 打印6
JA PRINTT3
CMP CL,0 ;如果CL不等于0那么打印他 -- 打印7
JA PRINTT4
JMP PRINTT5 ;最后一个是0也得打印。后面的调用中断打印字符,不用说了。
PRINTT1:
MOV DL,BH
ADD DL,30H
MOV AH,02H
INT 21H
PRINTT2:
MOV DL,BL
ADD DL,30H
MOV AH,02H
INT 21H
PRINTT3:
MOV DL,CH
ADD DL,30H
MOV AH,02H
INT 21H
PRINTT4:
MOV DL,CL
ADD DL,30H
MOV AH,02H
INT 21H
PRINTT5: POP AX
MOV DL,AL
ADD DL,30H
MOV AH,02H
INT 21H
MOV DL,10
INT 21H
MOV DL,13
INT 21H
POP DX
POP CX
POP BX
POP AX
ENDM
  • 打赏
  • 举报
回复
hcj2002 2003-12-12
up
^_^
  • 打赏
  • 举报
回复
相关推荐
发帖
汇编语言
加入

2.1w+

社区成员

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
申请成为版主
帖子事件
创建了帖子
2003-12-12 02:29
社区公告
暂无公告