汇编语言程序例题Word下载.docx

上传人:b****1 文档编号:2960641 上传时间:2023-05-01 格式:DOCX 页数:20 大小:207.48KB
下载 相关 举报
汇编语言程序例题Word下载.docx_第1页
第1页 / 共20页
汇编语言程序例题Word下载.docx_第2页
第2页 / 共20页
汇编语言程序例题Word下载.docx_第3页
第3页 / 共20页
汇编语言程序例题Word下载.docx_第4页
第4页 / 共20页
汇编语言程序例题Word下载.docx_第5页
第5页 / 共20页
汇编语言程序例题Word下载.docx_第6页
第6页 / 共20页
汇编语言程序例题Word下载.docx_第7页
第7页 / 共20页
汇编语言程序例题Word下载.docx_第8页
第8页 / 共20页
汇编语言程序例题Word下载.docx_第9页
第9页 / 共20页
汇编语言程序例题Word下载.docx_第10页
第10页 / 共20页
汇编语言程序例题Word下载.docx_第11页
第11页 / 共20页
汇编语言程序例题Word下载.docx_第12页
第12页 / 共20页
汇编语言程序例题Word下载.docx_第13页
第13页 / 共20页
汇编语言程序例题Word下载.docx_第14页
第14页 / 共20页
汇编语言程序例题Word下载.docx_第15页
第15页 / 共20页
汇编语言程序例题Word下载.docx_第16页
第16页 / 共20页
汇编语言程序例题Word下载.docx_第17页
第17页 / 共20页
汇编语言程序例题Word下载.docx_第18页
第18页 / 共20页
汇编语言程序例题Word下载.docx_第19页
第19页 / 共20页
汇编语言程序例题Word下载.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

汇编语言程序例题Word下载.docx

《汇编语言程序例题Word下载.docx》由会员分享,可在线阅读,更多相关《汇编语言程序例题Word下载.docx(20页珍藏版)》请在冰点文库上搜索。

汇编语言程序例题Word下载.docx

CWD:

(Z)符号扩展

ADDCX,AX

ADCBX,DX

(BX:

CX)+(DX:

SUBCX,540

SBBBX,0

CX)-540-(BX:

MOVAX,V

(V)符号扩展

SUBAX,CX

SBBDX,BX

CX)-(DX:

AX)

IDIVX

AX)/X

MOVW,AX

商7

MOVW+2,DX:

余数DX-W+2

MOVAH,4CH

INT21H

CODEENDS

退出DOS状态

ENDSTART

【例5.2]已知某班学生的英语成绩按学号(从1开始)从小到大的顺序排列在TAB

表中,要査的学生的学号放在变量\0中,查表结果放在变量ENGLISH中。

编写程序如下:

STACKSEGMENT

STACK

TABDB80,85,86,71,79,96

DB83,56,32,66,78,84

NODB10

ENGLISTDB?

DATA,SS:

STACK,CS:

CODE

BEGIN:

MOVDS,AX

LEABX>

TAB

MOVAL,NO

DELAL

XLATTAB

MOVENGLISH,AL

ENDBEGIN

【例5.3]已知在内存中有一个字节单元NUM,存有带符号数据,要求讣算出它的绝对值后,放入RESULT单元中。

题目分析:

根据数学中绝对值的槪念知道,一个正数的绝对值是它本身,而一个负数的绝对值是它的相反数:

要计算一个数的相反数,需要完成减法运算,即用0减去这个数。

8086/8088指令系统中有专门的求相反数的指令NEG“

 

DATA

SEGMENT

X

DB

-25

RESULT

9

ENDS

CODE

ASSUME

DS:

DATA,CS:

START:

初始化

MOVAL,X:

X取到AL中

TESTAL,80H:

测试AL正负

JZNEXT:

NEGAL

为正,转NEXT

否则AL求补

NEXT:

MOV

RESULT,AL

送结果

MOV

AH,4CH

INT

21H

返回DOS

【例5.4】编写计算下面函数值的程序:

1X>

Y=0X=0

-1X<

设输入数据为X、输岀数据Y,且皆为字节变量。

程序流程图如下图所示。

例6・4程序流程图

XDB-25

YDB?

ASSUMECS:

CODE,DS:

MOVAX,DATA

MOVAUX:

CMP

AL,0

Al中内容和0比较

JGE

BIG

大于等于0,转BIG

BL,-1

否则为负数,一1送BL

JMP

EXIT

转到结束位置

BIG:

JEEE

Al中内容是否为0,为0转EE

BL,1

否则为大于0,1送BL

EE:

MOVBL,0

0送BL

EXIT:

Y,BL:

BL中内容送Y单元

AH,4CH

程序结束

END

START

汇编结朿

【例5.5】试编一程序,求三个带符号字数据中的最大值,并将最大值存入MAX字单元中•

设三个带符号数分别在三个字变量X、Y、Z中存储。

程序流程图如下图所示

ZfAX屮丫卩

AX^MAX*1

SEGMENTSTACK

200DUP(0)

DW

OOABH

Y

_5

Z

200

MAX

DW?

DS:

MOVAX,

DS,AX

AX,X

AX,Y:

X>

Y?

JG

LI

Y>

Z?

AX,Z

L2:

LI:

X>

JLE

L2

【例5.6】设某程序有8路分支,试根据给泄的N值(「8),将程序的执行转移到其中的一路分支。

程序流程如图下所示。

TABDW

N

Pl,P2>

P3,P4,P5,P6,P7.P8

DB5

MOVAX.DATA

1

DEL

ADD

Pl:

AL,N

AL

AL,AL

BL,AL

BH,0

TAB[BX]

JMPEXIT

P2:

……

I

II

P3:

P8:

EXIT:

【例5・7】已知有几个元素存放在以BUF为首址的字节存贮区中,试统讣其中正元素的个数。

显然,每个元素为一个8位有符号二进制数,统计苴中正元素的个数可用循环程序实现。

其程序流程图如下图所示。

例5・8】编写程序完成求1+2+3+……N的累加和,直到累加和超过1000为止。

统计被累加的自然数的个数送CN单元,累加和送SUM。

流程图如下图所示。

例6.8稈序流程图

SUMDW?

CNDW?

MOVDS,AX

;

MOVAX,0

0送AX

MOVBX,0;

0送BX

LP:

INCBX:

BX加1

ADDAX,BX:

求累加和

AX,1000

比较

JBE

LP

W1000转

SUM,AX

CN,

BX:

汇编结束

【例5・9】在以BUF为首址的字存储区中存放有N个有符号数,现需将它们按大到小的顺序排列在BUF存储区中,试编写其程序。

我们釆用冒泡排序算法从第一个数开始依次对相邻两个数进行比较,如次序对.则不交换两数位苣;

如次序不对则使这两个数交换位宜。

可以看出,第一遍需比较(N-1)次,此时,最小的数已经放到了最后;

第二遍比较只需考虑剩下的(N-1)个数,即只需比较(N-2)次:

第三遍只需比较(N-3)次,……整个排序过程最多需(N-1)遍。

如下而的4个数即是采用冒泡排序比较的例子。

10

8

16

90

32

第一遍

第二遍

第三遍

程序流程图如图5・9所示。

BUFDW3,-4,6,7,9,2,0.-8,-9,-10,20N=($-BUF)/2

STACKSEGNMENTSTACK

ASSUMECS:

CODE,DS:

MOVCX,N

DECCX

L00P1:

MOVDX,CX

MOVBX,0

L00P2:

MOVAX,BUF[BX]

CMPAX,BUFEBX+2]

JGEL

XCHGAX,BUFEBX+2]

MOVBUF[BXhAX

L:

ADDBX,2

JNEL00P2

MOVCX,DX

LOOPL00P1

程序运行后,BIT区中的内容如下:

20,9»

7,6»

2,0>

-4,-8,-9,-10

若要对N个无符号数按由大到小的顺序排列,只需将指令“JGEL”改为“JAEL”即可。

【例5.10]将一个给泄的二进制数按位转换成相应的ASCII码字符串,送到指左的存储单元并显示。

如二进制数10010011转换成字符串为'

10010011'

要求将转换过程写成子程序,且子程序应具有较好的通用性,而必须能实现对8倍和16倍二进制数的转换。

入口参数:

DX存放待转换的二进制数

CX存放待转换数的位数(8位或16位)

DI存放ASCII码首地址

出口参数:

转换后的字符串存放在以DI作指针的字廿存贮区中

程序涓单:

NUM8

93H

NUM16

OABCDH

ASCBUF

20DUP(0)

DS,

AX

DX,

DL,

转换二进制数送DX

ex,

置位数8

LEA

DI,

字符串首址一DI

CALL

BTASC

调用子程序BTASC

[DI],BYTE

PTRODH

MOV[DI+1],BYTEPTROAH

MOV[DI+2],BYTEPTR$

AH,

16:

置位数16

[DL],BYTEPTRODH

[DL+1],

BYTE

PTROAH

[DL+2],

PTR“:

PROC

PUSH

保存AX

AL,

比较8位数

JNE

直接转换16位数

DH,

DL

8位数转换送DH

ROL

DX,,

1:

DX最髙位移入CF

RCL

CF移入AL最低位

3OH

显示转换后的字符串

MOV[DI],AL

INCDI

LOOPLI

POPAX

RET

BTASCENDP

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

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2