汇编实验报告河北工业大学Word下载.docx

上传人:b****6 文档编号:19997491 上传时间:2023-01-13 格式:DOCX 页数:73 大小:1.59MB
下载 相关 举报
汇编实验报告河北工业大学Word下载.docx_第1页
第1页 / 共73页
汇编实验报告河北工业大学Word下载.docx_第2页
第2页 / 共73页
汇编实验报告河北工业大学Word下载.docx_第3页
第3页 / 共73页
汇编实验报告河北工业大学Word下载.docx_第4页
第4页 / 共73页
汇编实验报告河北工业大学Word下载.docx_第5页
第5页 / 共73页
点击查看更多>>
下载资源
资源描述

汇编实验报告河北工业大学Word下载.docx

《汇编实验报告河北工业大学Word下载.docx》由会员分享,可在线阅读,更多相关《汇编实验报告河北工业大学Word下载.docx(73页珍藏版)》请在冰豆网上搜索。

汇编实验报告河北工业大学Word下载.docx

MOVCL,04H

SHRDX,CL

POPCX

LOOPBBB

MOVCX,0004H

MOVSI,OFFSETBUF3

MOVDX,[SI]

ADDSI,03H

CCC:

JBDDD

DDD:

MOV[SI],AL

DECSI

PUSHCX

LOOPCCC

MOVDX,OFFSETBUF2

MOVAH,09H

INT21H

MOVDX,OFFSETBUF3

MOVAH,4CH

CODEENDS

ENDBEGIN

运行结果:

2)有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。

相加若有进位不存入存储单元。

ADB34H,18H,2DUP(0),'

BDB56H,83H

DATAENDS

CODESEGMENT

START:

MOVAL,A

MOVBL,B

ADDAL,BL

MOVAH,A+1

MOVBH,B+1

ADCAH,BH

MOVA,AL

MOVA+1,AH

MOVCX,0004H

MOVDI,OFFSETA

MOVDX,[DI]

QQQ:

MOVCL,04

LOOPNEXT

MOVDX,OFFSETA

MOVAH,09H

INT21H

MOVAH,4CH

CODEENDS

ENDSTART

3)在BUF和BUF+1、BUF+2单元分别放有一个无符号字节型数,编程序将其中最大数存入MAX单元,并在屏幕上显示。

STACKSEGMENTSTACK

DB1024DUP(0)

STACKENDS

BUFDB70H,35H,1FH

MAXDB2DUP(?

),'

DATA,SS:

STACK

MOVAL,BUF

CMPAL,BUF+1

JNBLP1

MOVAL,BUF+1

LP1:

CMPAL,BUF+2

JAELP2

MOVAL,BUF+2

LP2:

MOVCX,02H

MOVDI,OFFSETMAX

MOVDL,AL

INCDI

LP3:

ANDAL,0FH

JBLP4

LP4:

SHRDL,CL

MOVAL,DL

LOOPLP3

MOVDX,OFFSETMAX

ENDBEGIN

4)要求同上,只是比较的数为有符号数。

BUFDB98H,75H,32H

JGLP1

XCHGAL,BUF+1

LP1:

CMPAL,BUF+2

JGLP2

XCHGAL,BUF+2

LP2:

MOVMAX,AL

MOVDI,OFFSETMAX

MOVDL,[DI]

INCDI

LP3:

CMPAL,0AH

JBLP4

ADDAL,07H

LP4:

ADDAL,30H

MOV[DI],AL

DECDI

MOVCL,04

SHRDX,CL

POPCX

LOOPLP3

MOVDX,OFFSETMAX

6)从键盘上接收一位十进制数X,计算Y值,并以十六进制形式显示出来,Y按下列公式计算。

XDB?

YDB?

DW20HDUP(?

ASSUMECS:

START:

MOVDS,AX

l0:

MOVDL,0AH

MOVAH,2

MOVDL,0DH

MOVAH,1

SUBAL,30H

MOVX,AL

CMPX,3

JZl1

CMPX,4

JZl2

CMPX,5

JZl3

CMPX,6

JZl4

CMPX,0

JZl6

JMPl0

l1:

MOVAL,X

MULX

ADDAL,X

MOVY,AL

JMPl5

l2:

SUBAL,X

l3:

l4:

MOVBL,2

DIVBL

l5:

MOVDL,Y

MOVCL,4

SHRDL,CL

CMPDL,9

JLEl7

ADDDL,7

l7:

ADDDL,30H

ANDDL,0FH

JLEl8

l8:

l6:

 

7)从键盘上接收两个一位十六进制数X和Y,然后再输入一个A-D之间的一个字符,按下列要求计算。

DATASSEGMENT

xdb?

ydb?

zdb?

sdb?

DATASENDS

CODESSEGMENT

CODES,DS:

DATAS

start:

movax,datas

movds,ax

l0:

movah,1

int21h

subal,30h

movx,al

movdl,0ah

movah,2

movdl,0dh

movah,1

movy,al

movz,al

cmpz,'

a'

jzl1

b'

jzl2

c'

jzl3

d'

jzl4

q'

jzl7

l1:

moval,x

addal,y

movs,al

jmpl6

l2:

subal,y

cmps,0

jsl5

jnsl6

l3:

muly

l4:

movbl,y

movah,0

divbl

l5:

negs

l6:

movdl,0ah

movah,2

int21h

movdl,0dh

movdl,s

l9:

adddl,30h

jmpl0

l7:

movah,4ch

CODESENDS

ENDstart

实验二循环与子程序程序设计

一、实验目的

1)加深对循环结构的理解。

2)掌握循环程序的设计方法。

3)学习子程序的定义和调用方法。

4)掌握子程序、子程序的嵌套、递归子程序的结构。

5)掌握子程序设计、编制及调试。

6)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。

1)编制程序计算S=1+2·

3+3·

4+4·

5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。

BUFDB'

S=1+2*3+3*4+4*5+…+N(N+1)+…='

'

RESDW4DUP(0),'

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETBUF

MOVAH,09H

MOVDX,1

MOVBL,2

NEXT:

MOVAL,BL

INCBL

MULBL

ADDDX,AX

CMPAX,200

JNANEXT

MOVDI,OFFSETRES

ADDDI,03H

NEXT1:

MOVAX,DX

ANDAX,000FH

CMPAL,0AH

JBNEXT2

ADDAL,07

NEXT2:

ADDAL,30H

LOOPNEXT1

MOVDX,OFFSETRES

MOVAH,4CH

2)将从3000H内存单元开始的100个字节存储单元全部清0。

ORG3000H

XDB100DUP(?

DB10DUP(?

LEASI,X

MOVCX,100

LP:

ANDBYTEPTR[SI],00H

INCSI

LOOPLP

3)编制在屏幕上显示九九乘法表的程序。

XDB1

YDB1

ZDB1

SDB?

YSDB?

TENDB10

MOVDS,AX;

装入段寄存器

L1:

MULY

MOVZ,AL

CALLSC

INCY

MOVBL,X

CMPY,BL

JAL2

JMPL1;

内循环

L2:

INCX

CMPX,9H

JAL3

MOVY,1

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,0DH

INT21H;

输出回车换行

外循环

L3:

SCPROC;

输出子程序

ADDY,30H

MOVDL,Y

输出Y

MOVDL,'

X'

输出X

ADDX,30H

MOVDL,X

='

输出=

MOVAX,0

MOVAL,Z

DIVTEN

MOVS,AL

MOVYS,AH

cmps,1

jbl10

ADDS,30H

MOVDL,S

MOVAH,2

INT21H;

输出高位结果

ADDYS,30H

MOVDL,YS

输出低位结果;

输出Z

'

输出一个空格

jmpl11

l10:

ADDYS,30H

MOVDL,YS

MOVAH,2

输出低位结果

输出一个空格

l11:

MOVAX,0

MOVAL,X-30H

SUBX,30H

SUBY,30H

RET

SCENDP

ENDSTART

4)编制在屏幕上显示用*组成的三角形的程序

NDB?

NNDB?

IDB1

STACKSEGMENT

DW20DUP(?

STACKENDS

MOVAH,1

输入一个数存入AL

MOVN,AL;

输入的数存入N

SUBN,30H

L10:

MOVAL,N

SUBAL,I

MOVNN,AL

CMPNN,1

JBL1

DECNN

JMPL2;

循环输出N-I个空格

MOVBL,I

SHLBL,1

SUBBL,1;

(IX2)-1

L14:

*'

DECBL

CMPBL,1

JBL3

JMPL14

L4:

JBL5

JMPL4;

循环输出N-I个空格

L5:

INCI

CMPBL,N

JAL6

MOVBL,0

JMPL10

L6:

ENDSTART

5)设有五个字数据存放在以BUF为首地址的内存单元中,要求采用调用多个字数据相加的子程序方法编程,和的低位字放在RESULT单元,和的高位字放在RESULT+2单元,并将结果显示在屏幕上。

BUFDW0F101H,110DH,52H,100H,456H

COUNT=($-BUF)/2

RESULTDW4DUP(?

WDADDPROC

PUSHDI

MOVAX,0

MOVDX,0

MOVDI,OFFSETBUF

ADDAX,[DI]

JNCNEXT1

INCDX

ADDDI,2

LOOPNEXT2

POPDI

WDADDENDP

SHOWPROC

MOVCX,04H

MOVDI,OFFSETRESULT

MOVBX,AX

ADDDI,07H

MOVAX,BX

ADDAL,07H

ADDAL,30H

MOV[DI],AL

MOVCL,04

SHRBX,CL

MOVAX,DX

MOVCL,04H

SHRDX,CL

POPDI

SHOWENDP

MOVAX,DATA

MOVCX,COUNT

CALLWDADD

CALLSHOW

MOVDX,OFFSETRESULT

实验三算术运算与代码转换程序设计

1)掌握算术运算程序的设计方法。

2)掌握代码转换程序的设计方法。

3)进一步掌握各种程序结构。

4)熟练掌握和使用用DEBUG调试程序。

二、实验内容

1)编制两个多字节整数加法和减法程序,并将结果按十六进制形式显示在屏幕上。

DATASEGMENT

TABLEDWL1,L2,L3,L4,L5

BUFDB32H,20H,12H

NUMDB04H

DATAENDS

STACK1SEGMENTPARASTACK

DW20HDUP(0)

STACK1ENDS

CODESEGMENT

STACK1

MOVAX,DATA

MOVDS,AX

MOVBL,BUF

MOVBH,BUF+1

MOVCL,BUF+2

CMPBL,BH

JAL1

CMPBH,CL

JAL2

JMPL3

CMPBL,CL

JAL4

MOVDL,BUF+1

ANDDL,0F0H

SARDL,1

ADDDL,30H

MOVAH,02H

MOV

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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