计算机软件技术基础上机报告,计算机软件技术基础实验报告1——汇编.doc

计算机软件技术基础实验一

试验题目:分支程序、循环程序和子程序的设计

实验目的:

使用分支结构编写程序,要求掌握利用间接转移指令JMP BX实现多岔分支的方法;宏替换指令MACRO及ENDM;符号扩展指令CBW。

掌握多重循环程序和排序程序设计方法。

掌握子程序的设计方法。

实验步骤及代码:

一、分支程序

分支程序步骤

输入并汇编此程序。要求生成一个 .LST文件。用TYPE命令检查 .LST文件,观察宏替换命令产生的指令集。

将OBJ文件连接成EXE文件(假设为AA。EXE)。

用命令DEBUG AA.EXE XXX (XXX为任意字符串)将AA.EXE带参数调入DEBUG用D命令观察DS:0080处的命令行,记录80H处的内容和字符个数的关糸。

退出DEBUG。直接带参数运行此程序:

AA n(n=0--5)

程序代码

dispmacromsg

leadx,msg

movah,9

int21h

movah,4ch

int21h

endm

stacksegmentstack

db256 dup(0)

stackends

datasegment

parmdb16 dup(?)

brtabledwoffset bra,offset brb,offset brc

dwoffset brd,offset bre,offset brf

msgadb'I like my IBM-PC!$'

msgbdb'How are you!$'

msgcdb'Nibao College$'

msgddb'This is a sample$'

msgedb'Wellcome use my coputer!$'

msgfdb'Theassemder language of 8088$'

errmsdb'Error!! invalid parameter!!$'

dataends

codesegment

assumecs:code,ds:data,ss:stack

start:movax,data

moves,ax

movsi,80h

leadi,parm

movcx,16

cld

repmovsb

movds,ax

cmpparm,2

jcerr

moval,parm+2

subal,30h

jcerr

cmpal,6

jncerr

leabx,brtable

cbw

addax,ax

addbx,ax

jmp[bx]

err:disperrms

bra:dispmsga

brb:dispmsgb

brc:dispmsgc

brd:dispmsgd

bre:dispmsge

brf:dispmsgf

codeends

endstart

二、循环程序

程序步骤

输入,汇编并连接此程序。忽略连接时的无堆栈告警。

用EXE2BIN将 .exe文件转换为 。COM文件,命令格式:

EXE2BIN? ???.EXE ????.COM

在DEBUG下运行此程序,记录运行结果。

将转移指令JLE改为JBE,JGE和JAE,分别运行并记录排序结果。

2、程序代码:

codesegment

org100h

assumecs:code,ds:code

main:jmpstart

arraydw1234h,5673h,7fffh,8000h,0dffh

dw0ab5h,0369h,005fh,5634h,9069h

countequ$-array

start:movcx,count

shrcx,1

deccx

movbl,-1

again:movdx,cx

andbl,bl

jeexit

xorbl,bl

xorsi,si

again1:movax,array[si]

cmpax,array[si+2]

jlenchg

xchgarray[si+2],ax

movarray[si],ax

movbl,-1

nchg:incsi

incsi

decdx

jnzagain1

loopagain

exit:int20h

codeends

endmain

三、子程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值