汇编语言程序设计实验教程第二章实验报告Word下载.docx

上传人:b****6 文档编号:20865239 上传时间:2023-01-26 格式:DOCX 页数:7 大小:17.19KB
下载 相关 举报
汇编语言程序设计实验教程第二章实验报告Word下载.docx_第1页
第1页 / 共7页
汇编语言程序设计实验教程第二章实验报告Word下载.docx_第2页
第2页 / 共7页
汇编语言程序设计实验教程第二章实验报告Word下载.docx_第3页
第3页 / 共7页
汇编语言程序设计实验教程第二章实验报告Word下载.docx_第4页
第4页 / 共7页
汇编语言程序设计实验教程第二章实验报告Word下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

汇编语言程序设计实验教程第二章实验报告Word下载.docx

《汇编语言程序设计实验教程第二章实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计实验教程第二章实验报告Word下载.docx(7页珍藏版)》请在冰豆网上搜索。

汇编语言程序设计实验教程第二章实验报告Word下载.docx

dx

把dl的内容保存到堆栈中去。

在显示空白或回车、换行符后用指令

pop 

恢复dl寄存器的原始内容。

4.程序清单:

codesegment

assumecs:

code

start:

movdx,0010h

next:

movcx,10h

loop1:

movah,02h

int21h

incdx

pushdx

movdl,0

popdx

looploop1

movdl,0ah

movdl,0dh

cmpdx,100h

jbnext

movah,4ch

 

codeends

endstart

5.运行结果如下:

6.实验总结:

通过本次实验我深刻的知道用汇编语言编译程序的方法,掌握了如何合理的利用各个寄存器进行程序的控制操作,初步了解到循环程序的控制方法,以及dos中断调用的基本要领对学习汇编语言有了非常好的帮助作用!

汇编语言 

实验二 

查找匹配字符串

一、目的

查找匹配字符串SEARCH

二、实验内容

程序接收用户键入的一个关键字以及一个句子。

如果句子中不包含关键字则显示‘NOmatch!

’;

如果句子中包含关键字则显示‘MATCH’,且把该字在句子中的位置用十六进制数显示出来。

流程图

不匹配,输出

开始

三、设计和编码

DATASEGMENT

mess1 

 

DB'

Enterkeyword:

'

'

$'

mess2 

EnterSentence:

mess3 

Matchatlocation:

mess4 

NOTMATCH.'

13,10,'

mess5 

Hifthesentence'

change 

DB13,10,'

stoknin1labelbyte

max1db10

act1db?

stokn1db10dup(?

) 

stoknin2labelbyte

max2db50

act2db?

stokn2db50dup(?

DATAENDS

STACKSSEGMENT

;

此处输入堆栈段代码

STACKSENDS

CODESEGMENT

*************************************代码段

mainprocfar

code,ds:

data,es:

data

START:

pushds

subAX,AX

subBX,BX

subDI,DI

subSI,SI

pushAX 

;

为返回dos并清空后面要用到的寄存器

MOVAX,DATA

MOVDS,AX

LEADX,mess1 

MOVah,09

INT21h 

输出Enterkeyword

LEADX,stoknin1

MOVah,0ah 

用21号中段的0ah号功能获取关键字

INT21h

cmpact1,0 

jeexit 

如果为空直接退出程序

a10:

********************************输入Sentence并判断

LEADX,change 

MOVah,09 

输出回程,换行

LEADX,mess2

输出EnterSentence:

LEADX,stoknin2 

MOVah,0ah

用21号中段的0ah号功能获取句子

MOVAL,act1

CBW

MOVCX,AX 

保存关键字长度到cx

PUSHCX 

cx入栈

MOVAL,act2

cmpAL,0

jea50 

保存句子长度到al,若句子为空则跳转显示notmatch

SUBAL,act1

jsa50 

若句子长度小于关键字长度,则跳转显示notmatch

INCAL

CBW 

LEABX,stokn2 

将句子的首地址放进BX

MOVDI,0

MOVSI,0

a20:

****************************************比较,内循环

MOVAH,[BX+DI] 

CMPAH,stokn1[SI] 

遇见字符不相等就跳转到a30

jnea30

INCDI

INCSI

DECCX 

没遇到一个相等的字符,cx-1,cx不为0则比较下一个字符,当cx为0是说明关键字比较完

CMPCX,0

jea40

jmpa20

a30:

*****************************************外循环,BX+1,清空si,di继续内循环比较

INCBX 

DECAL

jea50

POPCX

pushCX

a40:

*****************************************match,将bx减去句子的首地址加一得到关键字所在位置,调用二进制转十六进制子函数将位置输出

SUBBX,offsetstokn2

INCBX

LEADX,change

LEADX,mess3

CALLbtoh

LEADX,mess5

jmpa10 

****************************************二进制转换十六进制

btohPROCNEAR

MOVCH,4

rotate:

MOVCL,4

ROLBX,CL

MOVAL,BL

andAL,0fh

addAL,30h

cmpal,3ah

jl 

printit

addal,7h 

printit:

MOVdl,al

MOVah,2

decch

jnzrotate

ret

btohendp

a50:

*****************************************显示notmatch

LEADX,mess4

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

当前位置:首页 > 小学教育 > 小升初

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

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