文档详情

计算机程序编写.pdf

发布:2025-05-07约1.17万字共12页下载文档
文本预览下载声明

1、设在数据段中有X,Y两变量字(节单元),试编写程序段计算(只写有关程序能的指令):

Y=X当X=0

Y=0当X0

解:moval,x

cmpa;,0

jgeAl

moval,0

Al:movy,al

2在STR单元开始定义了一长度为LEX字节的字符串,统计出其中大写字母的个数并存放到LARGE字节单元中。请

编一完整的源程序c

DATASEGMENT

STRDB

LENEQU$-STR

LARGEDB?

DATAENDS

CDEGMENT

ASSUMECS:CD,DSATA

LARGPROCFAR

MOVAX,DATA

MOVDS,AX

LEASI,STR

MOVCX,LEN

MOVBL,0

NT:CMPBYTEPTR[SI],A

JBNOLARG

CMPBYTEPTR[SI],Z

JANOLARG

INCBL

NOLARG:INCSI

LOOPNT

MOVLARGE,BL

MOVAH,4CH

INT21H

LARGENDP

CDENDS

ENDLARG

3、已知DAT1字节单元有•个数据,试编制•程序段将该数据的低4位变为1010B,最高位(第7位)置1,其余3

位不变,结果送DAT2字节单元。

MOVALDATA1

;

ANDAL70H

:

ADDAL8AH

;

MOVDATA2,AL

4、在和N2两数据区中,分别有10H个带符号数。试编制一源程序,找出对应项中较小的数据,并将这些较小

的数据存入N3数据区中(要求:对应项比较时必须用CMPS指令)。

DATASEGMENT

N1DBXX,XX,XX,...

N2DBXX,XX,XX,

N3DB10HDUP(0)

DATAENDS

解:STACKSEGSEGMENTSTACK

DB1024DUP(O)

STACKSEGENDS

DATASEGMENT

N1DB5Ah,6Fh,2Eh,0D8h,0E3h,9Ch,ODBh,0B7h,5Bh,21h,35h,8Eh,4Ah,15h,58h,75h

N2DB58h,OFFh,5Eh,38h,0C7h,OAlh,26h,86h,48h,35h,48h,16h,OBAh,OFAh,ODFh,0E9h

N3DB1011DUP(O)

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,SS:STACKSEG

START:MOVAX,DATA

MOVDS,AX

INCAX

MOVES,AX

MOVSI.OFFFHI

MOVDI,OFFFFH

MOVCX,lOh

MOVBX,OFFSETN3

CLD

AGAIN:CMPSBYTEPTRN1,BYTEPTRN2

JLNILES

MOVAL,[Sl+lOh]

MOV[BX][SI],AL

JMPCMPAGAIN

NILES:MOVAL,[si]

M

显示全部
相似文档