资源描述:
《汇编语言习题以及答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、习题4-4.试编程序将内存从50000H到5FFFFH的每个单元均写入数55H,并再逐个单元读出比较,看写入的与读出的是否一致。若全对,则将AL置0;只要有错,则将AL置0FFH。解:START:MOVAX,5000HMOVDS,AXMOVSI,0MOVCX,0FFFFHLOOP1:MOVBYTEPTR[SI],55HMOVAL,[SI]CMPAL,55HJNZLOOPERRLOOP2:INCSILOOPLOOP1MOVBYTEPTR[SI],55H;最后一个单元MOVAL,[SI]CMPAL,55HJ
2、NZLOOPERRMOVAL,0;全对JMPLOOPOUTLOOPERR:MOVAL,0FFHLOOPOUT:NOP4-5.编写一个子程序,对AL中的ASCII字符添加偶校验位(bit7),即:使AL中的“1”的个数为偶数。解:ADDPARITYPROCNEARANDAL,7FHJPADDEXITORAL,80HADDEXIT:RETADDPARITYENDP4-6.利用上题的子程序,编程对内存物理地址10000H开始的1024个单元的ASCII字符加上偶校验位。解:START:MOVAX,1000HM
3、OVDS,AXMOVSI,0MOVCX,1024LOOP1:MOVAL,[SI]CALLADDPARITYMOV[SI],ALINCSILOOPLOOP14-7、试写一子程序,完成对一个8位无符号数乘6的操作。要求:(1)只能用传送、加法及移位指令;(2)入口参数(即8位无符号数)放于AL中,出口参数(即乘6后的结果)放于AX。解:MULTI6PROCNEARPUSHBXMOVAH,0SHLAX,1;乘2MOVBX,AXSHLAX,1;乘4ADDAX,BX;乘6POPBXRETMULTI6ENDP4-8
4、.给定如下程序片段:START:MOVAX,1000H,MOVSS,AXMOVSP,000FHMOVAX,1000HPUSHAXMOVBX,5439HPUSHBXCALLNEARPTRSUBRTPOPAXSTOP0:HLTSUBRT:PUSHBPMOVBP,SPVAAX:MOVAX,[BP+4]ADDAX,456AHMOV[BP+4],AXPOPBPRET4问:(1)程序执行到标号为SUBRT处的指令时,SP=?(2)执行完标号为VAAX的MOV指令后,AX=?(3)执行到标号为STOP0处的指令时:S
5、P=?AX=?BX=?CF=?SF=?OF=?解:(1)程序执行完标号为SUBRT处的“PUSHBP”指令后,SP=0007H(2)执行完标号为VAAX的MOV指令后,AX=5439H(3)程序执行到标号为STOP0处的指令时(实际执行“HLT”指令之前):SP=0011HAX=99A3HBX=5439H以及以下标志寄存器的内容:CF=0SF=1OF=14-9.自符号地址为MARK开始的内存缓冲区中,存有100个学生的某门课的考试成绩。试找出成绩不低于80分以及成绩低于60分的学生个数,同时求出最高的成
6、绩分及最低的成绩分数,并将它们分别存于符号地址为PST、FST、MAXMK及MINMK的四个单元中。要求写出完整的数据段及代码段。解:DATASEGMENTMARKDB100DUP(?)PSTDW0FSTDW0MAXMKDB0MINMKDB100DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,100MOVBX,OFFSETMARKAGAIN:MOVAL,[BX]CMPAL,MAXMKJCHIGHLMOVMAXMK
7、,AL;updatehighestmarkHIGHL:CMPAL,MINMKJNCMKCHKMOVMINMK,AL;updatelowestmarkMKCHK:CMPAL,60JNCHIGHMKINCFST;increasetheno.ofstudentswhosemark<60JMPCHKFHHIGHMK:CMPAL,80JCCHKFHINCPST;increasetheno.ofstudentswhosemark>=80CHKFH:INCBXLOOPAGAINMOVAX,4C00HINT21HCOD
8、EENDSENDSTART4-10.编写一段程序,接收从键盘输入的10个数(输入回车符后结束),然后将这些数按位取反后存于BUFF开始的缓冲区中。解:DATASEGMENT;数据段BUFFDB10DUP(0);数据区DATAENDSSTACKSEGMENTSTACK‘STACK’;堆栈段DB100DUP(?)STACKENDSCODESEGMENT;代码段ASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,D