18.在ax中存放着压缩bcd码的十进制数。要求:(1)将ah中的数转换成二进制数。
2)求ah与al中数的和,将结果转换成ascii码,然后在屏幕上显示出来。【解】(1)将ah中的数转换成二进制数,结果存于dx中。程序**如下:
codesegment
保存ax中的数据;千位置0
**段开始。
assume cs:code
start:movbx,ax
andah,0fhmoval,ahmul100movdx,axmovah,bhmovcl,4shrah,clmoval,ahmul1000addax,dxmovdx,axmov
百位结果存于dx中。
移位次数;千位移到低4位。
百位加千位结果存于dx中。
ah,4ch
返回dos**段结束。
int21h
codeends
endstart;源程序结束。
2)求ah与al中数的和,将结果转换成ascii码,然后在屏幕上显示出来。程序**如下:
codesegment
保存ax中的数据;移位次数。
千位移到ah低4位;转换成ascii码。
**段开始。
assume cs:code
start:movbx,ax
movcl,4shrah,cl
addah,30hmovdl,ahmovah,2int21h
调用2号系统功能,输出单字符。
movah,bhandah,0fhaddah,30hmovdl,ahmovah,2int21h
调用2号系统功能,输出单字符。
取低4位;转换成ascii码。
moval,blmovcl,4shral,claddal,30h
移位次数。十位移到低4位。
转换成ascii码。
movdl,almovah,2int21h
调用2号系统功能,输出单字符。
moval,blandal,0fhaddal,30hmovdl,almovah,2int21hmov
调用2号系统功能,输出单字符。
取低4位;转换成ascii码。
ah,4ch
返回dos;**段结束;源程序结束。
int21h
codeends
endstart
19.已知从buf单元开始存放着10个8位无符号数,要求编写汇编语言程序将这10个数去掉一个最大的,再去掉一个最小的,将其余的数的算术平均值计算出来并存于**erg单字节单元。
解】注意:10个8位无符号数的累加和有可能超过8位,需要16位的寄存器存储。寄存器分配:dl:最小值;dh:最大值;cx:循环次数;ax:累加和。
本题的思路:找出最小值,暂时存于dl,找出最大值,暂时存于dh,求10个数的和,再减去最小值和最大值,求8个数的平均值。
程序**如下:
databuf
segment
数据段开始。
db23h,26h,44h,98h,32h,72h,39h,62h,75h,48h
**ergdb?datacode
ends数据段结束。
**段开始。
segment
assume cs:code,ds:data
start:mov
movax,datads,ax
装填数据段。
leabx,bufxorax,axmovcx,9movdl,[bx]
传送变量的地址。
movdh,[bx]moval,[bx]
lp1:incbx
cmpdl,[bx]jbecont1movdl,[bx]
cont1:cmpdh,[bx]
jaecont2movdx,[bx]
cont2:addal,[bx]
if dh<[bx], then dh←[bx];if dl>=[bx],转移。
if dl>[bx], then dl←[bx];if dl<=[bx],转移。
adcah,0
looplp1subal,dlsbbah,0subal,dhsbbah,0movbl,8divbl
平均值在al中。
mov**erg,almov
ah,4ch
返回dos;**段结束;源程序结束。
int21h
codeends
endstart
21.从table字节单元开始存有100个无符号数,试编程把数组**现次数最多的数存入ch中,其出现次数存入cl中。【解】程序**如下:
datatabledatacode
segment
数据段开始。
db100 dup(?)ends
数据段结束。
**段开始。
segment
assume cs:code,ds:data
start:mov
movax,datads,ax
装填数据段。
leabx,tablexorax,axxordx,dxmov
lp2:cx,99
传送变量的地址。
pushbxpushcxmov
ah,[bx]
moval,1lp1:
incbxcmpah,[bx]jnenext1incal
next1:looplp1
popcxpopbxincbxcmpal,dl
ah !=bx],转移。
jbnext2movdl,almovdh,ah
next2:looplp2
movcx,dxmov
alah,4ch
返回dos;**段结束;源程序结束。
int21h
codeends
endstart
22.有两个长度不等的字符串,分别存于strn1和strn2单元开始的存储区,字串长度分别存放于ls1和ls2字节单元,要求编程将短串接在长串之后,并将连接后的串长度存于ls1和ls1+1单元。【解】设两串连接后最大长度为256个字符,连接后的字符串存于strn3单元开始的存储区。
程序**如下:
datastrn1strn2strn3
segment
数据段开始。
db‘i swear by the moon and the stars in the sky.’db‘and i swear like the shadow thats by your side.’db256 dup(?
)ls1db45ls2db48datacode
ends数据段结束。
**段开始。
segment
assume cs:code,ds:data
start:mov
movax,datads,ax
装填数据段。
xorax,axxorbx,bxmoval,ls1movbl,ls2cmpal,bljalink2
al>bl,大数在ls1中,转移到link2;传送变量的地址;传送变量的地址。
link1:leabx,strn2
leasi,strn3xorcx,cxmovcl,ls2
lop1:moval,[bx]mov[si],alincbxincsilooplop1leabx,strn1movcl,ls1
lop2:moval,[bx]
传送变量的地址。
mov[si],alincbxincsilooplop2jmpnext
link2:leabx,strn1
leasi,strn3xorcx,cxmovcl,ls1
lop3:moval,[bx]mov[si],alincbxincsilooplop3leabx,strn2movcl,ls2
lop4:moval,[bx]mov[si],alincbxincsilooplop4
next:xorax,axxorbx,bxmoval,ls1movbl,ls2addax,bxleabx,ls1mov[bx],ax
stop:mov
ah,4ch
返回dos**段结束。
将连接后的串长度存于ls1和ls1+1单元。
传送变量的地址。
传送变量的地址;传送变量的地址。
int21h
codeends
endstart;源程序结束。
25.已知某数组array中有50个8位带符号数,试用汇编语言编写一个完整的程序。
统计该数组中相邻两数之间符号变化(正数变负数或负数变正数)的次数,并将其存于num存储单元。【解】程序**如下:
dataarray
segment
数据段开始。
db-20,34,4,33,-4,-6,49,-33,34,21,67,83,-17,-12,-81,34,85,32,1,91,15,73,95,14,28,16,-41,-34,-9,54,2,2,4,67,-33,-51,-21,4,3,10,67,83,-20,-17,-81,34,85,32,1,90
numdb?
dataendscode
数据段结束。
**段开始。
segment
assume cs:code,ds:data
start:mov
ax,datamov
ds,axleabx,array
xordl,dlmovcx,49
lp1:moval,[bx]movah,[bx+1]andal,80h
andah,80h
cmpah,aljecontincdl
cont:incbx
looplp1movnum,dlmov
ah,4ch
int21h
codeends
endstart
装填数据段。
传送变量的地址。
留符号位,屏蔽其它位;留符号位,屏蔽其它位;返回dos;**段结束;源程序结束。
第五章作业
检验以下模型中是否存在多重共线性,如果存在,请改善。y 新客车 量。x2 新车的消费者 指数,1967 100 x3 消费者 指数 全部项目,全部城市消费者 1967 100 x4 个人可支配收入,10亿美元。x5 利率,百分数。x6 民间就业劳动人数 千人 一 建立模型。其中,是新客车 量 辆 分...
第五章作业
一 单选题。1 监理规划是监理单位重要的 a a 存档资料b 计划文件c 监理资料d.历史资料。2 下列说法中,符合监理规划的是 a a 由项目总监理工程师主持制定b 监理规划是开展监理工作的第一步c 监理规划是签订合同之前制定的d 监理规划相当于工程项目的初步设计。3 由项目监理机构的专业监理工程...
第五章作业
网络安全第五章作业。2016.4.22p132思考题1.2.3.5.6.75.1给出网络访问控制的简要定义。答 网络访问控制 nac 是对网络进行管理访问的一个概括性术语。nac对登录到网络的用户进行认证,同时决定该用户可以访问哪些数据,执行哪些操作。nac同时可以检查用户的计算机或者移动设备 终端...