养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

[汇编]字符的存储方式理解实现字符ASCII查询

时间:2024-11-12 05:19:45

然而,在进行编程的前缚聘遥堆夕,我们需要了解所涉及的知识:在汇编程序中,我们要定义输入自定义的字符,一般都讵畿缤耒会在段定义中定义DB类(或DW)的一段内存单元来预留需存放的字符。其中,定义用到DB,那么限定我们使用的寄存器也需8位程序中,需要用到DOS系统功能调用,这里只提用到的3个,若深入学习,请自行查询资料。(1)单字符输入(功能调用号AH=01H),使用实例:

movah,01H+=L^h9Fint21H

cEPqcy*(2)单字符输入(功能调用号AH=02H),使用实例:H|d"45J_

其中DIY为段定义中定义的变量>a8'MKF^wm&:%{`movdl,OFFSETDIY0{47TX*YXmovah,02H@$|bMH*1:int21Hj@jUuYuDgl@aWd0e]或者h`MTB!oleadx,DIYv==/tr)movah,02H(5=B^9{Rint21H

P?`a{sl.(3)字符串输出(功能调用号AH=09H),使用实例:yRldPk_

datasegmentz7O$o/E-*DIYdb'HellowWorld!$';字符串需要$结束lD1m<ACdatasegment/,^AG2]( fN?mQ50o~Cmovdl,OFFSETDIYS,qEKWyLdmovah,09Hp']oy;tint21H

YyD0g9{Ou2p^:C(字符在寄存器中,是以16进制的ASCII存放的。,uCgC4EP3|1v)Eyz^Rm2$f9在本程序中,我们使用DIY的除法方式,来拆分ASCII的十位和个位,商为十位存放于AL中,余数为个位存放于AH中。且得到的商和余数都为16H进制数。a/lTQj]AC\gKJW^]y@例:a-->73H-->07H和03H,其中07H与03H为ASCII值,在ASCII表中对应的值不相符或者不存在。Amj'$G|+hjOx&]{通过了解基本所涉及的知识,我们通过分析程序来体验学习:Ws:MbZyrvW`[CEm^X

复制代码

assumecs:code,ds:data

datasegment

SGWORDDB8

TIP1DB'Pleaseanykey,thenenteringtocontinue:$'

TIP2DB'',0AH,0DH,'TheASCIIofthiswordis:$'

dataends

codesegment

start:

movax,data

movds,ax

movdl,OFFSETTIP1;PrinttheTIP1

movah,09H

int21H

movah,01H;Enterasingleword

int21H

movcl,al;SavingtheASCIIofword

movdl,OFFSETTIP2;PrinttheTIP2

movah,09H

int21H

ASCII_P:

moval,cl

movdl,16;m%d

divdl

movcl,ah;TheAHsavesLatterofASCII

andal,0FH;TheALsavesPriofASCII

movdl,al

ordl,30H

movah,02H

int21H

ASCII_L:

movdl,cl

ordl,30H

cmpdl,3AH

jbNOADD

adddl,07H

NOADD:

movah,02H

int21H

movah,4CH

int21H

codeends

ENDstart

© 一点知识