汇编语言编程题目资料答案.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《汇编语言编程题目资料答案.doc》由会员分享,可在线阅读,更多相关《汇编语言编程题目资料答案.doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5.1编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序用大写字母显示这三个字符。【解】:MAIN PROC FARstart:push dssub ax,axpush axinput:mov ah,7Hint 21Hcmpe:cmp al,20HJE exitcmp al,61HJL inputcmp al,7AHJG inputprint:sub al,01Hmov dl,almov ah,02Hint 21Hadd al,01Hmov dl,almov ah,02Hint 21Hadd al,01Hmov dl,almov ah,02Hint 21H;输出换行回车
2、mov dl,0AHmov ah,02Hint 21Hjmp inputexit :retMAIN ENDPEND start5.2将AX寄存器中的16位数分成4组,每组4位,然后把这4组数分别放在AL、BL、CL和DL中。【解】:DB4dup(?).stack100H.codeMAINPROCFARstart:pushdsandax,00Hpushaxmovax,1234Hmovcx,04Hmovsi,00Hlop:pushcxmovcl,04Hrolax,clpushaxandal,0FHmovBYTEPTRxsi,alpopaxpopcxaddsi,2Looplopmoval,Xmovb
3、l,X+2movcl,X+4movdl,X+6print:movah,02Hint21Hmovdl,almovah,02Hint21Hmovdl,blmovah,02Hint21Hmovdl,clmovah,02Hint21Hexit:retMAINENDPENDstart5.3试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示MATCH,若不相同则显示NO MATCH。【解】:datasegmentstring1db111111111,13,10,$string2db222222222,13,10,$inf1dbmatch!,13,10,$inf2d
4、bnomatch!,13,10,$dataendscodesegmentmainprocfarassumeds:data,cs:code,es:codestart:pushdsmovax,0pushaxmovax,datamovds,axmoves,axleasi,string1leadi,string2movcx,9repzcmpsbjzmatchleadx,inf2jmpdispmatch:leadx,inf1disp:movah,09int21hretmainendpcodeendsendstart5.4试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII码为07H
5、)。【解】:mainprocfarstart:pushdssubax,axpushaxinput:movah,01Hint21Hcmpal,20Hjeexitcmpal,30Hjleinputcmpal,3AHjgeinputsubal,30Hmovcx,axandcx,0FFHlop:movdl,07Hmovah,2Hint21Hlooplopjmpinputexit:retmainendpendstart5.5编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。【解】:DATA SEGMENT BUF DB -32, 25,
6、 36, -18, -64, 0, -3 COUNT EQU $ - BUF PLUS DB ? ; 存放正数 MINUS DB ? ; 存放负数 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV BL, 0 ; 负数个数 MOV DL, 0 ; 正数个数 MOV SI, OFFSET BUF ; 首地址 MOV CX, COUNT ; 循环次数 LOP1: MOV AL, SI ; 取第一个数 CMP AL, 0 ; 和0比较 JGE NEXT0 ; 大于等于0,转 INC BL
7、; 小于0, BL加1 JMP NEXT1 ; 转 NEXT1 NEXT0: INC DL ;大于等于0, DL加1 NEXT1: INC SI ; 指针增1 DEC CX ; 循环次数减1 JNZ LOP1 ; CX不等于0,转回 MOV MINUS, BL ; 存储负数个数 MOV PLUS, DL ; 存储正数个数 CODE ENDS END START 5.6试编写一汇编语言程序,要求从键盘接收一个4位的十六进制数,并在终端上显示与它等值的二进制数。【解】:stacks segment stacks db 20 dup(0)stacks endsdata segmentn equ 4c
8、har db n+1 ;输入内存字符db 0db n+1 dup(0)input db Input the number:,0dh,0ah,$enter db 0dh,0ah,$output db Result is:,0dh,0ah,$data endscode segmentassume cs:code,ss:stacks,ds:datastart: mov ax,datamov ds,axlea dx,inputmov ah,9int 21hlea dx, charmov ah,0ahint 21hlea dx,entermov ah,9int 21hmov si,2mov cx,4l0
9、: mov bl,charsicmp bl,30hjb startcmp bl,39hjbe l00cmp bl,61hjb startcmp bl,66hja startsub bl,57hjmp l333l00: sub bl,30hl333:mov charsi,blinc sidec cxjnz l0lea dx,outputmov ah,9int 21hmov si,2l000:mov bl,charsimov ch,4mov cl,4shl bl,clll00:test bl,80hjnz l1mov dl,0mov ah,2int 21hjmp l2l1: mov dl,1mov
10、 ah,2int 21hl2: shl bl,1dec chjnz ll00inc sicmp si,6jne l000mov ah,4chint 21hcode endsend start5.7设有一段英文,其字符变量名为ENG,并以$字符结束。试编写一程序,查对单词SUN在该文中的出现次数,并以格式“SUNXXXX”显示出次数。【解】:mov Z,0lea esi,ENGlp1:lodsblp2:cmp al,$jztoQuitcmp al,Sjnz lp1lodsbcmp al,Ujnz lp2lodsbcmp al,Njnz lp2inc Zjmp lp1toQuit:5.8有一个首地
11、址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。【解】:stack100H.datamemdw12,0,0,0,0,0,1,2,3,6,4,7,8,2,1,0,0,54,5,0,2,4,7,8,0,5,6,2,1,4,8,5,1,45,7,5,1,2,0,2,4,0,2,54,0,12,0,0,0,0,0,1,2,3,6,4,7,8,2,1,0,0,54,5,0,2,4,7,8,0,5,6,2,1,4,8,5,1,45,7,5,1,2,0,2,4,0,2,54,0,45,7,5,1,2,0,2,4,0,2.codeMAINPROCF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 编程 题目 资料 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内