使用赋值语句将AB的和放入C中。程序三于程序以类似,只不过将ASI的寻址方式变为1000的直接寻址,把其地址值直接拿来使用。
程序运行结果如上图所示
5
f微机原理与接口技术实验
NO2编写计算表达式2(XY50)Z值的程序,将上与玉树分别放在A,B中。(XY均为32位有符号数,Z为16位有符号数。AB为字)原代码如下
datasegme
tXdw1234H5678HYdw1753H1320HZdw1002HAdwBdwdatae
dscodesegme
tassumeCScodeDSdatastartmovaxsegdatamovdsaxmovsi0movcx0050HmovbxXsiaddbxYsisubbxcxmovXsiBXmovBXXsi2HadcBXYsi2HmovXsi2HBXshlXsi1rclXsi2H1movaxXsi2hcwdidivZsimovcl02HsalaxclmovAsiaxmovaxXsiaddaxdxcwd位拓展divZsi除addAsiax按要求保存结果movBsidxmovah4cHi
t21H完成括号内加减法内容codee
dse
dstart左移乘2
分析总结:实验在32位数加减乘除运算是遇到困难。同时在有符号除法处遇到溢出困难。经过对字分开运算后在整合,问题得到解决
6
f微机原理与接口技术实验
Test2:分支结构程序设计
NO1实验内容:编写程序,实现将大写字母转换为小写字母的程序。源代码如下:
dataSEGMENTmsgDBIamastude
tLENEQUmsgDATAENDScodeSEGMENTassumeCScodeDSdataSTARTmovaxdatamovdsaxmovbxoffsetmsgMOVCXLENmovdlalopMOVALbxCMPaldljb
extsubal20hmovbxal
exti
cbxlooplopmovdxoffsetmsgmovah09hi
t21hmovah4chi
t21hcodee
dse
dstart获取字符串长度设置大小比较值
比对从字符串中读取的某个字符与a的ASCLL码的大小来判断是否需要转换如不需转化,直接跳转至
ext
计数部分自加一以统计字符串是否读完读完跳出
保存并显示出修改后的字符串
7
f微机原理与接口技术实验
程序运行结果如上图
Test4:循环程序设计
NO3数据段开始区域中,连续存放着十个无符号数,变成虚找出这十个数中最大的一个数,并存在该数据区的后面。原代码如下:
DATASEGMENTNUMDB11H99H55H99H33H22H44H66H88H10HLENEQUNUMDATAENDSCODESEGMENTASSUMECSCODEDSDATASTARTMOVDXSEGDATAMOVDSDXMOVSI0MOVCXLENSUBCX1MOVALSILOPCLC
读取字符串长度后减1得出所需循环次数
进位清零
8
f微机原理与接口技术实验
MOVBLSI1CMPBLALINCSIJBNEXTMOVALBLNEXTLOOPLOPMOVNUMSI1ALMOVAH4CHINT21HCODEENDSENDSTART
与之前读取的数比较
若大于之前的数,则保存后者循环,与下一个数进行比较将最后得出的最大数保存
程序运行结果如上图所示
Test6:DOS中断功能调用程序设计
NO1编写一个程序使键盘输入的一个字符,ASCLL将
9
f微机原理与接口r