内存单元中有一个ASCII码表.docx

上传人:b****6 文档编号:6834120 上传时间:2023-01-11 格式:DOCX 页数:19 大小:16.93KB
下载 相关 举报
内存单元中有一个ASCII码表.docx_第1页
第1页 / 共19页
内存单元中有一个ASCII码表.docx_第2页
第2页 / 共19页
内存单元中有一个ASCII码表.docx_第3页
第3页 / 共19页
内存单元中有一个ASCII码表.docx_第4页
第4页 / 共19页
内存单元中有一个ASCII码表.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

内存单元中有一个ASCII码表.docx

《内存单元中有一个ASCII码表.docx》由会员分享,可在线阅读,更多相关《内存单元中有一个ASCII码表.docx(19页珍藏版)》请在冰豆网上搜索。

内存单元中有一个ASCII码表.docx

内存单元中有一个ASCII码表

编写程序,实现表的处理:

内存单元中有一个ASCII码表,编写程序完成下面的功能:

①首先输出表的内容;

②插入一个数据,插入的数据和插入的位置从键盘输入;

③对表中的数据进行排序,按升顺或降顺排序可以进行选择;

④在表中查找某一个关键字,要查找的关键字从键盘输入;如果找到,输出查找的关键字并给出提示“find”,否则给出提示“nofind”;

⑤程序执行以后,输出表中的插入以后的内容和排序以后的内容;

⑥程序有友好的运行界面;

⑦要求程序能够处理基本的错误信息;

datasegment

tabledb'204b26377c',0ah,0dh,'$'

strdb'whichdatayouwanttoinsertandwhereitis?

',0ah,0dh,'$'

megdb'Sortingthetable,youwantitonthebasisof'

db'ascendingorderordescendingorder?

',0ah,0dh

db'1representascendingorder.',0ah,0dh

db'2representdescendingorder.',0ah,0dh,'$'

meg1db'error,makeanotherchoice.',0ah,0dh,'$'

meg2db'Inputthedatayouwanttobefound.',0ah,0dh,'$'

meg3db'find',0ah,0dh,'$'

meg4db'nofind',0ah,0dh,'$'

infdb'***************ASCIITABLE(beforechange)********************',0ah,0dh,'$'

inf1db'***************ASCIITABLE(ascendingorder)******************',0ah,0dh,'$'

inf2db'***************ASCIITABLE(descendingorder)*****************',0ah,0dh,'$'

numdb3

db?

db3dup(?

dataends

codesegment

assumecs:

code,ds:

data,es:

data

start:

movax,data

movds,ax

leadx,table

movah,9

int21h

leadx,str

movah,9

int21h

movah,1

int21h

pushax

callnon

popax

subal,30h

xorah,ah

movcl,3

mulcl

movbx,ax

movah,1

int21h

movtable[bx],al

movah,1

int21h

movtable[bx+1],al

callnon

leadx,meg

movah,9

int21h

input:

movah,1

int21h

pushax

callnon

popax

cmpal,31h

jex1

cmpal,32h

jex2

leadx,meg1

movah,9

int21h

jmpinput

x1:

movcl,5

deccl

outlp:

movch,cl

movsi,offsettable

inlp:

moval,[si]

andal,0fh

movdl,al

pushcx

movcl,4

shldl,cl

popcx

moval,[si+1]

cmpal,61h

jaeb2

andal,0fh

ordl,al

jmpa1

b2:

subal,57h

adddl,al

a1:

moval,[si+3]

andal,0fh

movbl,al

pushcx

movcl,4

shlbl,cl

popcx

moval,[si+4]

cmpal,61h

jaea3

andal,0fh

orbl,al

jmpa2

a3:

subal,57h

addbl,al

a2:

cmpdl,bl

jnanext

moval,[si]

xchgal,[si+3]

mov[si],al

moval,[si+1]

xchgal,[si+4]

mov[si+1],al

next:

addsi,3

decch

jnzinlp

loopoutlp

leadx,table

movah,9

int21h

jmpselect

 

x2:

movcl,5

deccl

outl:

movch,cl

movsi,offsettable

inl:

moval,[si]

andal,0fh

movdl,al

pushcx

movcl,4

shldl,cl

popcx

moval,[si+1]

cmpal,61h

jaec4

andal,0fh

ordl,al

jmpc1

c4:

subal,57h

adddl,al

c1:

moval,[si+3]

andal,0fh

movbl,al

pushcx

movcl,4

shlbl,cl

popcx

moval,[si+4]

cmpal,61h

jaec3

andal,0fh

orbl,al

jmpc3

c3:

subal,57h

addbl,al

c2:

cmpdl,bl

jaenex

moval,[si]

xchgal,[si+3]

mov[si],al

moval,[si+1]

xchgal,[si+4]

mov[si+1],al

nex:

addsi,3

decch

jnzinl

loopoutl

leadx,table

movah,9

int21h

select:

leadx,meg2

movah,9

int21h

movah,1

int21h

movbl,al

andal,00fh

movdl,al

movcl,4

shldl,cl

movah,1

int21h

movbh,al

andal,00fh

oral,dl

movcx,15

movdi,offsettable

moval,bl

repnescasb

jnznon_find

moval,bh

repnescasb

jzfind

non_find:

callnon

leadx,meg4

movah,9

int21h

jmpprint

find:

callnon

leadx,meg3

movah,9

int21h

print:

leadx,table

movah,9

int21h

movah,4ch

int21h

nonproc

movdl,0ah

movah,2

int21h

movdl,0dh

movah,2

int21h

ret

nonendp

codeends

endstart

 

datasegment

tabledb'204b26377c',0ah,0dh,'$'

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

x1:

movcl,5

deccl

outlp:

movch,cl

movsi,offsettable

inlp:

moval,[si]

andal,0fh

movdl,al

pushcx

movcl,4

shldl,cl

popcx

moval,[si+1]

cmpal,61h

jaeb2

andal,0fh

ordl,al

jmpa1

b2:

subal,57h

adddl,al

a1:

moval,[si+3]

andal,0fh

movbl,al

pushcx

movcl,4

shlbl,cl

popcx

moval,[si+4]

cmpal,61h

jaex2

andal,0fh

orbl,al

jmpa2

x2:

subal,57h

addbl,al

a2:

cmpdl,bl

jnanext

moval,[si]

xchgal,[si+3]

mov[si],al

moval,[si+1]

xchgal,[si+4]

mov[si+1],al

next:

addsi,3

decch

jnzinlp

loopoutlp

leadx,table

movah,9

int21h

movah,4ch

int21h

codeends

endstart

 

movbx,ax

movsi,ax

addsi,2

movdi,si

decsi

movcx,5

repmovsb

movah,1

int21h

movtable[bx],al

movah,1

int21h

movtable[bx+1],al

outputmacro

localprint1

leadx,inf

movah,9

int21h

movsi,0

movcx,48

movbl,4

print1:

movdl,table[si]

movah,2

int21h

incsi

loopprint1

decbl

movcx,48

movdl,0ah

movah,2

int21h

movdl,0dh

movah,2

int21h

jnzprint1

leadx,inf1

movah,9

int21h

endm

datasegment

tabledb'2035331a1d4b2608020d03342c2a270d'

db'3d01483b4c224a40365056393e523a44'

db'76696a6b7d6063707c6c5c5a6560595f'

db''

count=$-table-1

strdb'whereinsert:

$'

str1db'insert:

$'

megdb'ascendingorderordescendingorder?

',0ah,0dh

db'1representascendingorder.',0ah,0dh

db'2representdescendingorder.',0ah,0dh,'$'

meg1db'error,makeanotherchoice.',0ah,0dh,'$'

meg2db'Inputthedatayouwanttobefound:

$'

meg3db'find',0ah,0dh,'$'

meg4db'nofind',0ah,0dh,'$'

infdb'******************ASCIITABLE*******************',0ah,0dh,'$'

inf1db'************************************************',0ah,0dh,'$'

dataends

codesegment

assumecs:

code,ds:

data,es:

data

start:

movax,data

movds,ax

moves,ax

output

insert:

leadx,str

movah,9

int21h

movah,1

int21h

andal,00fh

movdl,10;wojiade

muldl;wojiade

movdx,ax

movcl,4

shldl,cl

movah,1

int21h

andax,00fh;al改成ax

adddx,ax;原来是oral,dl

decdx;wojiade

movax,dx;wojiade

pushax

callnon

popax

xorah,ah

movcl,3

mulcl

movbx,ax;bx存放插入位置的三倍

moval,48

pushax;入栈连同ah和48

mulcl;ax48*3

movcx,ax;cx48×3存入

std

inccx;我加的

subcx,bx;wojiade

movsi,ax

addax,3

movdi,ax

subax,3

repmovsb

leadx,str1

movah,9

int21h

movah,1

int21h

movtable[bx],al

movah,1

int21h

movtable[bx+1],al

callnon

output

leadx,meg

movah,9

int21h

choose_order:

movah,1

int21h

pushax

callnon

popax

cmpal,31h

jex1

cmpal,32h

jex2

leadx,meg1

movah,9

int21h

jmpchoose_order

x1:

movcl,49

deccl

a0:

movch,cl

movsi,offsettable

a1:

moval,[si]

andal,0fh

movdl,al

pushcx

movcl,4

shldl,cl

popcx

moval,[si+1]

cmpal,61h

jaea3

andal,0fh

ordl,al

jmpa4

a3:

subal,57h

adddl,al

a4:

moval,[si+3]

andal,0fh

movbl,al

pushcx

movcl,4

shlbl,cl

popcx

moval,[si+4]

cmpal,61h

jaea5

andal,0fh

orbl,al

jmpa6

a5:

subal,57h

addbl,al

a6:

cmpdl,bl

jnanext

moval,[si]

xchgal,[si+3]

mov[si],al

moval,[si+1]

xchgal,[si+4]

mov[si+1],al

next:

addsi,3

decch

jnza1

loopa0

jmpselect

x2:

movcl,49

deccl

b0:

movch,cl

movsi,offsettable

b1:

moval,[si]

andal,0fh

movdl,al

pushcx

movcl,4

shldl,cl

popcx

moval,[si+1]

cmpal,61h

jaeb2

andal,0fh

ordl,al

jmpb3

b2:

subal,57h

adddl,al

b3:

moval,[si+3]

andal,0fh

movbl,al

pushcx

movcl,4

shlbl,cl

popcx

moval,[si+4]

cmpal,61h

jaeb4

andal,0fh

orbl,al

jmpb5

b4:

subal,57h

addbl,al

b5:

cmpdl,bl

jaenext1

moval,[si]

xchgal,[si+3]

mov[si],al

moval,[si+1]

xchgal,[si+4]

mov[si+1],al

next1:

addsi,3

decch

jnzb1

loopb0

select:

leadx,meg2

movah,9

int21h

movah,1

int21h

movbl,al

andal,00fh

movdl,al

movcl,4

shldl,cl

movah,1

int21h

movbh,al

andal,00fh

oral,dl

movbl,al

movcx,48

c1:

moval,[si]

andal,0fh

movdl,al

pushcx

movcl,4

shldl,cl

popcx

moval,[si+1]

cmpal,61h

jaec2

andal,0fh

ordl,al

jmpc3

c2:

subal,57h

adddl,al

c3:

cmpbl,dl

jnznon_find

find:

callnon

leadx,meg3

movah,9

int21h

jmpprint

non_find:

addsi,3

loopc1

callnon

leadx,meg4

movah,9

int21h

print:

output

movah,4ch

int21h

nonproc

movdl,0ah

movah,2

int21h

movdl,0dh

movah,2

int21h

ret

nonendp

codeends

endstart

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1