版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CH03汇编语言程序设计习题与思考题下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。VAR1DB10,2VAR2DW5DU(?0AR3 DB‘HOWAREYO?,3DD -1,1,0解答:字节空间 。存储空间的分配图:DS:00000A02000000000000—0000000000 00484F0010572041524520594F—553F240102 010201002002FFFFFFFF010000—0000000000为字变量,LAB为标号,试指出下列指令的错误之处。(1)ADD(3)JMPVAR1,VAR2LAB[CX](2)SUB(4)JNZAL,VAR1VAR1(5)MOV[1000H],100(6)SHLAL,4解答:(1)两个操作数中至少有一个为寄存器;(2)AL(3)[]中不能用CX;转向地址应为标号;目的操作数的类型不确定;SHL1时,必须用CLCX来取代所移位数。对于下面的符号定义,指出下列指令的错误。A1A2K1DB?DB10EQU1024(1)MOV(3)CMPK1,AXA1,A2(2)MOV(4)K1A1,AXEQU2048解答:(1)K1为常量,不能用MOV(2)A1为字变量,不匹配;(3)A1未定义,无法做比较指令;K1重新赋值前,必须用PURGE释放。FIRST DB SECONDDB 5DUP(?)THIRD DB 5DUP(?)自FIRST单元开始存放的是一个四字节的十六进制数(低位字节在前),要求:编一段程序将这个数左移两位后存放到自SECOND开始的单元,右移两位后存放到自THIRD开始的单元。(注意保留移出部分)解答:SEGMENTFIRSTDB90H,5FH,6EH,69HSECONDDB5DUP(?)THIRDDB5DUP(?)ENDSCODE SEGMENTASSUME MOV DS,AXLEA SI,FIRSTLEA MOV CX,2CLC2位
MOV INC SIINC SIMOV PUSH DXPUSH AXROL DX,CLAND DL,03HMOV ROL AX,CLAND AL,03HMOV BL,ALPOP AXPOP DXSHL SHL OR DL,BLMOV [DI],AXMOV ;右移2位,类同左移的方法,略MOV INT 21HCODE ENDSEND START5(原1在当前数据区从400H开始的256序搬移到从A000H256个单元中。解答:DATASEGMENTORG400HDB ...;256DUPORG0A000HDB ...;256DUP(?)DATAENDSSTACKSEGMENTSTACKENDSCODESEGMENTASSUMESTART:MOVAX,DATAMOVDS,AX;CH3-14LEASI,DAT1LEADI,DAT2MOVCX,128AGAIN:MOVAL,[SI]MOV[DI],ALINCSIINCDILOOPAGAIN;CH3-15,将两个数据块逐个单元进行比较,若有错BL=00H,否则BL=FFHLEASI,DAT1LEADI,DAT2MOVCX,128NEXT: MOVAL,[SI]MOVBL,[DI]CMPAL,BLJNZERRORINCSIINCDILOOPMOVBL,0FFHJMPEXITERROR:MOVBL,00HEXIT: MOVAX,4C00HINT21HCODEENDSENDSTART试编程序将当前数据区从BUFF4K55H看写入的与读出的是否一致。若全对,则将ERR0HERR单元。解答:SEGMENTBUFF DB 1000HERR DB ?ENDSCODE ASSUME START:MOV MOV DS,AX;将55H依次放入BUFF开始的4K个单元LEA SI,BUFFMOV MOV AL,55HNTXT: MOV INC SILOOPNEXT;取出与55H比较,全对则ERR=0,否则ERR=FFHLEA DI,BUFFLEA SI,ERRMOV NEXT1:MOV INC DICMP AL,55HJNZ ERROR;若有一个不同,即置LOOPNEXT1MOV AL,00HMOV [SI],AL;全比较完无错,则置JMP EXITERROR:MOV MOV [SI],AL;返回DOSEXIT: MOV INT 21HCODE ENDSEND ENDERR单元中存放出错的数据个数,则程序该如何修改?解答:SEGMENTBUFF DB 1000HERR DW ?ENDSCODE ASSUME START:MOV AX,DATAMOV DS,AX;将55H依次放入BUFF开始的4K个单LEA SI,BUFFMOV MOV AL,55HNTXT: MOV INC SILOOPNEXT;取出与55H比较LEA DI,BUFFLEA SI,ERRMOV MOV CX,1000HNEXT1:MOV INC DICMP AL,55HJZ NEXT2;若相同,则比较下一个INC DX;否则将放出错个数的DX加NEXT2: LOOPMOV [SI],DXEXIT: MOV INT 21HCODE ENDSEND END0100H开始的一串字节数据逐个从F0H0AH(略)24)存中以FIRSTSECOND开始的单元中分别存放着两个4位用压缩BCD码表示,BCD,并存到以开始的单元。解答:DATASEGMENTFIRSTDW3412HSECONDDW7856HTHIRDDB?,?,?DATAENDSSTACKSEGMENTSTACKENDSCODESEGMENTASSUMESTART:MOVAX,DATAMOVDS,AXLEASI,FIRSTLEADI,SECONDLEABX,THIRDMOVCX,2CLCAGAIN:MOVAL,BYTEPTR[SI]MOVDL,BYTEPTR[DI]ADCAL,DLDAAMOVBYTEPTR[BX],ALINCSIINCDIINCBXLOOPAGAINJCAAMOVBYTEPTR[BX],0JMPEXITAA: MOVBYTEPTR[BX],1EXIT: MOVAX,4C00HINT21HCODEENDSENDSTART10.(原27)设字变量单元A、B、C存放有三个数,若三个数都不为零,则求三个数的和,存放在D中;若有一个为零,则将其余两个也清零,试编写程序。解答:A DB?DB?DB?DW?STACKSEGMENTSTACKENDSCODESEGMENTASSUMESTART:MOVAX,DATAMOVLEA SI,ALEA DI,DMOV CMP AL,00JZ ZEROADC DX,ALLEA SI,BMOV CMP AL,00JZ ZEROADC DX,ALLEA SI,CMOV CMP AL,00JZ ZEROADC DX,ALMOV JMP EXITZERO: MOV MOV A,ALMOV MOV EXIT: MOVAX,4C00HINT21HCODEENDSENDSTART11.(16)试编程序,统计由TABLE开始的128个单元中所存放的字符“A”的个数,并将结果存放在DX中。解答:DATASEGMENTTABLE DBENDSSTACKSEGMENTSTACKENDSCODESEGMENTASSUMESTART:MOVAX,DATAMOVDS,AXLEASI,TABLEMOVDX,0MOVCX,128AGAIN:MOVAL,[SI]CMPAL,'A'JNZNEXTINCDXNEXT: INCSILOOPAGAINMOVAX,4C00HINT21HCODEENDSENDSTART试编制一个汇编语言程序,求出首地址为的1000它存放于MIN(方法:利用书上排序的例题做相应的修改即可,略)MAX和MIN单元中,试完成程序。解答:略(12题。DATA100H16AX中,并求出数组中有多少个数小于平均值,将结果存于BX(略)15.(17)编写一个子程序,对AL中的数据进行偶校验,并将经过校验的结果放回AL中。解答:DATASEGMENTCOUNTEQU7DATAENDSSTACKSEGMENTSTACKENDSCODESEGMENTASSUMESTART:MOVAX,DATAMOVDS,AXPUSHAXMOVDX,0MOVCX,COUNTAGAIN:RCRAL,1JNCLINCL: LOOPPOPAXTESTDX,01JZEXITORAL,80EXIT: MOVAX,4C00HINT21H;ANOTHERMETHORDJP EXITOR EXIT: MOVAX,4C00HINT21HCODEENDSENDSTART16.(18)利用上题的予程序,对DATA开始的256个单元的数据加上偶校验,试编程序。解答:DATASEGMENTDAT DB...;256DUP(?)RESULTDB...;256DUPNUM EQU256COUNTEQU7DATAENDSSTACKSEGMENTSTACKENDSCODESEGMENTASSUMESTART:MOVAX,DATAMOVDS,AXLEASI,DATLEADI,RESULTMOVCX,NUMNEXT: MOVAL,[SI]CALLSUB1MOV[DI],AL;MOV[SI],ALINCSIINCDILOOPMOVAX,4C00HINT21HSUB1 PROCPUSHAXMOVMOVAGAIN:RCRAL,1JNCLINCL: LOOPPOPAXTESTDX,01JZQUITORQUIT: RETSUB1 CODEENDSENDSTART17.(19)试编写程序实现将键盘输入的小写字母转换成大写字母并输出。解答:DATASEGMENTMESSDB'THEINPUTISNOTCORRECT.',0DH,0AH,'$'DATAENDSSTACKSEGMENTSTACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACK,ES:DTASTART:MOVAX,DATAMOVDS,AXNEXT: MOVINT21HCMPAL,'Q'JZEXITCMPAL,'a'JB ERRORCMPAL,'z'JA ERRORSUBMOVAH,02HMOVDL,ALINT21HJMPNEXTERROR:MOVAH,09HLEADX,MESSINT21HJMPNEXTEXIT: MOVAX,4C00HINT21HCODEENDSENDSTART18.从键盘接收20个字符,按键入顺序查找最大的字符,并显示输出。解答:SEGMENTDAT DB20ENDSSTACKSEGMENTSTACKENDSCODESEGMENTASSUMESTART:MOVMOVDS,AX;从键盘接收20个字符,并送中保LEA SI,DATMOV CX,20NEXT: MOV INT 21HMOV INC SILOOPNEXT;比较20个字符中的最大字符,并放入AL中MOV CX,19LEA SI,DATMOV INC SINEXT1:CMP JAE LLMOV LL:INC SILOOPNEXT1;将最大的字符的ASCII码由AL送DL显MOV DL,ALMOV INT 21H;返回DOSMOVAX,4C00HINT21HCODEENDSENDSTART19.(29)编写汇编程序,接收从键盘输入的10个数,输入回车符表示结束,然后将这些数加密后存于BUFF缓冲区中。加密表为:输入数字:0,1,2,3,4,5,6,7,8,9;密码数字:7,5,9,1,3,6,8,0,2,4解答:SEGMENTBUFFDB10TABLE DB7,5,9,1,3,6,8,0,2,4ENDSSTACKSEGMENTSTACKENDSCODESEGMENTASSUMESTART:MOVMOVDS,AX;LEA DI,BUFFNEXT: MOV AH,01HINT 21H;从键盘上接收单个字符CMP AL,0AH;与0AH比,判是否要结JZ EXITSUB AL,30H;否则,将0~9的ASCII码转换为十进制LEA BX,TABLE用查表指令进行加MOV [DI],ALINC DIJMP ;退出并返回DOSEXIT: MOVAX,4C00HINT21HCODEENDSENDSTART20.(23)100个字节的数据表,表元素已按从大到小的顺序排列好,现给定一元素,(略)2(26在当前数据段D,偏移地址为DTAB开始的顺序80个单元中,存放着某班80个同学某门考试成绩。按要求编写程序:①编写程序统计≥90分;80分~89分;70分~79分;60分~69分,<60分的人数各为多少,并将结果放在同一数据段、偏移地址为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《迁地保护》课件
- 《A公司概述》课件
- 《电子商务基本架构》课件
- 驻黑山使馆的职责介绍
- 古人祝贺水果店店开业的诗句
- 儿歌《我的家》课件
- 课题结题报告的格式要求
- 桥梁养护安全培训
- 2024年全国天然气储运输政策
- 幼儿园7月的安全会议记录(含表格)
- 国家开放大学本科《人文英语3》一平台机考真题及答案(第七套)
- 2024版美团商家合作协议合同范本
- 科学教育合作协议
- 大众传媒文化智慧树知到期末考试答案章节答案2024年复旦大学
- 人教部编版三年级道德与法治上册全册教案(全册)
- 中心静脉压CVP监测专家讲座
- 大豆购货合同范本(2024版)
- 装修出租合同范本
- 任命基金管理人协议
- 研学旅游基地设计方案
- 张成福《公共管理学》(修订版)课后习题详解
评论
0/150
提交评论