汇编语言小程序例子Word格式文档下载.docx

上传人:b****2 文档编号:14849002 上传时间:2022-10-25 格式:DOCX 页数:22 大小:21.27KB
下载 相关 举报
汇编语言小程序例子Word格式文档下载.docx_第1页
第1页 / 共22页
汇编语言小程序例子Word格式文档下载.docx_第2页
第2页 / 共22页
汇编语言小程序例子Word格式文档下载.docx_第3页
第3页 / 共22页
汇编语言小程序例子Word格式文档下载.docx_第4页
第4页 / 共22页
汇编语言小程序例子Word格式文档下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

汇编语言小程序例子Word格式文档下载.docx

《汇编语言小程序例子Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汇编语言小程序例子Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。

汇编语言小程序例子Word格式文档下载.docx

程序:

DATASEGMENT

R1DB'

MATCH'

0AH,0DH

R2DB'

NOMATCH'

STRING1DB'

XXXXX'

N1EQU$-STRING1

STRING2DB'

YYYYY'

N2EQU$-STRING2

DATAENDS

CODE,DS:

DATA

MOVAX,DATA

MOVDS,AX

MOVAX,N1

CMPAX,N2

JNZAA1

ADDAX,1

LEASI,STRING1

LEADI,STRING2

MOVBL,[SI]

MOVBH,[DI]

INCSI

INCDI

SUBAX,1

CMPBL,BH

JZAA2

JMPAA1

LEABX,R1

MOVCX,7

AA4:

MOVDL,[BX]

INCBX

MOVAH,2

LOOPAA4

JMPE

LEABX,R2

MOVCX,10

AA5:

LOOPAA5

E:

ENDSTART

3.从键盘读入一个四位的十六进制数,CRT显示等值的二进制数.

由于每个十六进制数位对应4个二进制,所以每读入一个十六进制位后,即可将其对应的4个二进制位依次输出。

由于数字'

0'

~'

9'

的ASCⅡ码为30H~39H,字母'

a'

~'

f'

与'

A'

F'

的ASCⅡ码为61H~66H与41H~46H,因此,如果输入的字母为数字'

,则其低4位即为对应的二进制位;

如果输入的字符为字母'

a'

f'

或'

A'

F'

,则需要减7,然后通过移位将低4位依次输出。

汇编程序如下:

MSG1 DB '

Hex:

'

 '

$'

MSG2 DB 0DH, 0AH, '

Binary:

COUNTEQU4

BUFDB4DUP(?

MOVAX,DATA

MOVDS,AX

LEADX,MSG1

MOVAH,9

MOVCX,COUNT

MOVSI,0

INPUT:

通过四次循环从键盘读入四位十六进制数

MOVAH,1

MOVBUF[SI],AL

DECCX

CMPCX,0

JNZINPUT

NEXT3:

LEADX,MSG2

NEXT2:

MOVBL,BUF[SI]

CMPBL,'

9'

JBEOK;

读入的字符<=9 转向 OK:

SUBBL,7 ;

读入字符>

=9减7

OK:

PUSHCX

MOVCL,4

SHLBL,CL;

逻辑左移4位,低4位à

高4位

MOVCX,4;

4次循环将当前处理字符的4位二进制输出

NEXT1:

MOVDL,'

0'

SHLBL,1

JNCSKIP

INCDL

SKIP:

MOVAH,2

LOOPNEXT1

POPCX;

LOOPNEXT2;

4次循环将4位十六进制数,每位转换为对应的4位二进制

EXIT:

MOVAH,4CH

CODEENDS

4.设从STRING开始存放一个以$为结束标志的字符串,试编写把字符串中的字符进行分类的源程序,数字字符送入NUM开始的内存中,大写字母送入BCHAR开始的内存区中,小写字母存入LCHAR开始的内存中,其他字符存入OTHER开始的内存区中。

STRINGDB'

abc123ABC'

'

NEQU$-STRING

NUMDBNDUP(?

BCHARDBNDUP(?

LCHARDBNDUP(?

OTHERDBNDUP(?

MOVAX,DATA

LEABX,STRING

DECBX

LEASP,BCHAR

LEACX,LCHAR

LEADX,OTHER

LEASI,NUM

INCBX

MOVAL,[BX]//判断是否为$,是否结束

CMPAL,'

JZAA5

CMPAL,30H//判定数字字符

JCAA4

CMPAL,39H

JAAA2

MOV[SI],AL

CMPAL,41H//判定大写字母

CMPAL,5AH

JAAA3

MOVDI,SP

MOV[DI],AL

INCSP

CMPAL,61H//判定小写字母

CMPAL,7AH

JAAA4

MOVDI,CX

INCCX

MOVDI,DX//判定其他

MOV[DI],AL

INCDX

MOVAH,4CH//返回DOS结束

5.试编写找出首地址为BUF数据块中的最小偶数(该数据块中有100个带符号字节数),并以十六进制的形式显示在CRT上的源程序。

答:

BUFDB100DUP(?

);

要比较的数

LEABX,BUF;

BUF首地址送BX

MOVCL,101;

循环控制

MOVDL,126;

DL存放最小偶数

MOVAH,0;

标志是不是有偶数

LOOP1:

DECCL;

循环计数减1

JZTOEND;

ZF标志0则跳转

MOVAL,[BX];

BX内存内容送AL

INCBX;

BX指向下一内存单元

SHRAL,1;

AL逻辑右移一位

JCLOOP1;

是基数则接着循环

SHLAL,1;

是偶数,因为上面右移了左移得到原数值

MOVAH,1;

能进行这一步则说明数值中有偶数

CMPAL,DL;

与CH比较大小

JGELOOP1;

AL大DL小则循环

MOVDL,AL;

保证DL存放最小偶数

JMPLOOP1;

CL不为0继续循环

TOEND:

CMPAH,1

JCL;

有借位则说明数值中无偶数直接返DOS

MOVBL,DL

SHRDL,1

SHRDL,1

ANDDL,0FH

CMPDL,10

JBL4

ADDDL,7

L4:

ADDDL,30H;

显示高四位对应的十六进制的ascii码

MOVDL,BL

JBL6

L6:

显示低四位对应的十六进制的ascii码

MOVDL,'

H'

;

显示H

L:

MOVAH,4CH;

返回DOS

6.已知数据块BUFA中存放15个互不相等的字节数据,BUFB中存放20个互不相等的字节数据,试编写将既在BUFA中出现,又在BUFB中出现的数据存放到BUFC开始的缓冲区中的源程序。

BUFADB41H,42H,43H,44H,45H,46H,47H,48H,49H,4AH,4BH,4CH,4DH,4EH,4FH

BUFBDB31H,32H,33H,41H,42H,43H,44H,45H,46H,47H,48H,49H,4AH,4BH,4CH

DB50H,51H,52H,53H,54H

BUFCDB15DUP(0)

LEASI,BUFA

LEABX,BUFC

MOVCX,15;

外层循环计数

MOVAH,20;

内层循环20次

MOVAL,[SI]

LEADI,BUFB

CMPAL,[DI]:

比较BUFA,BUFB内容

JNZAA3;

内容不同,跳至AA3

MOV[BX],AL;

内容相同,将其存入BUFC单元

JMPAA4;

找到相同内容,结束本次内层循环

DECAH;

内层循环计数减一

JNZAA2;

内层循环结束

LOOPAA1;

外层循环结束

此行以下将BUFC中的内容输出

BB1:

LOOPBB1

7.试编写由键盘输入一个以回车作为结束的字符串,将其按ASCII码由大到小的顺序输入到CRT上的源程序。

DATASEGMENT;

数据段

BUFDB200DUP(?

DATAENDS

CODESEGMENT;

代码段

ASSUMECS:

CODE,DS:

START:

MOV

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

当前位置:首页 > 经管营销 > 企业管理

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

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