一道汇编题 要期末考试了发现很多知识点不理解

[复制链接]
查看11 | 回复2 | 2010-6-21 11:17:02 | 显示全部楼层 |阅读模式
在包含10个字节数据的数组array中查找第一个非0数据,并显示其在数组中的位置:
DATA SEGMENT
ARRAY
DB 10 DUP(0),1
MESS
DB 'ALL ZERO!$'
DATA ENDS
CODE SEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX , DATA

MOVDS , AX

MOVCX , 10

MOVDI , -1
again:INCDI

CMParray[DI] , 0

LOOPZagain
JNZ
NEXT

MOVDX , offset MESS

MOVAH , 9

INT
21H

JMP
EXIT
NEXT: MOVDX , DI

ORDL , 30H

MOVAH , 2

INT21H
EXIT: MOVAX , 4C00H

INT21H
CODE ENDS
ENDSTART
这一句是什么意思啊:ORDL , 30H什么作用?

回复

使用道具 举报

千问 | 2010-6-21 11:17:02 | 显示全部楼层
0-9这10个字符对应的ASCII码是30H-39H,AH=2的DOS功能调用是显示DL中的字符,DI是第一个非0数据位置(假如是3),要显示'3',则需要在DL中置以'33H'. "ORDL , 30H "就是将DL中的'3'变为'33H'.
回复

使用道具 举报

千问 | 2010-6-21 11:17:02 | 显示全部楼层
相当于add dl,30h转换成字符,显示在终端上
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行