CPU与汇编语言上机考试题.pdf
《CPU与汇编语言上机考试题.pdf》由会员分享,可在线阅读,更多相关《CPU与汇编语言上机考试题.pdf(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、请任意输入一个字符串,将该串倒序后在屏幕上显示。.model small.stack 10h.datastring db 100 dup(50)#db:defined b y te,定义 100 个字节,初始化为 50.codestart:mov ax,datamov ds,ax#ds:数据段寄存器,对应全局变量lea dx,string#lea:存储器地址偏移量存入dxmov ah,Oah#Oah:中断号,从键盘接收字符串并放入缓冲区(回车键结束)。缓冲区首地址存于dx。缓冲区第2字节开始实际存字符。int21h#转入中断子程序的入口mov dl,Oah#Oah:换行符的 asc 码mov
2、ah,02h#02h:显示输出int 21hxor bh,bhmov bl,string1 1#缓冲区的第。字节存入最多接收的字符数,第1字节存放实际输入的字数lop:mov dl,stringbx+1mov ah,02hint21hdec bxjnz lopmov ah,4ch#4ch:退出程序int 21h2.end start请任意输入一个字符串,.model small.stack 10h.databuf db 100 dup(50)count 1 db OOhcount2 db OOhstrl db*num of space is:$str2 db num of A is$.code
3、统计其中空格和A 的个数,并将结果显示在屏幕上。#定 义 100字 节 初 始 化 50#初始化0 space个数#A 个数start:mov ax,datamov ds,axlea dx,bufmov ah,Oahint21hmov dl,Oahmov ah,02hint 21h#换行#显示输出xor bh,bh#0mov bl,bufllop:mov al,buffbx+1#最后一个字符xor al,*#space?jz spacemov al,bufbx+1xor al,A1jz char_Anext:dec bxjnz lopjz showspace:add countl,Olhjmp
4、 nextchar_A:add count2,Olhjmp nextshow:lea dx,str Imov ah,09h#显示字符串int21hmov dl,count 1add dl,30hmov ah,02hint21hmov dl,Oah#换行mov ah,02h#输出int21hlea dx,str2mov ah,09hint21hmov dl,count2add dl,30hmov ah,02hint21hmov dl,Oahmov ah,02hint21hmov ah,4chint21hend start3.请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。.mo
5、del small.stack 10h.databufdb 100dup(50).codestart:mov ax,datamov ds,axlea dx,bufmov ah,Oahint 21hmov dl,Oahmov ah,02hint21hxor bh,bhmov bl,buflmov si,0002hlop:mov al,bufsixor al,11jz nextjnz shownext:dec bxjz breakinc sijmp lopshow:mov dl,bufsimov ah,02hint21hjmp nextbreak:mov ah,4chint21hend start
6、4.请任意输入一个字符串,将其中A 换成C C,并将结果显示在屏幕上。.model small.stack 10h.databufdb 100dup(50).codestart:mov ax,datamov ds,axlea dx,bufmov ah,Oahint21hmov dl,Oahmov ah,02hint21hxor bh,bhmov bl,bull 1 mov si,0002hlop:mov al,bufsixor al,Ajz show_ccjnz show_charnext:dec bxjz breakinc sijmp lopshow_cc:mov dl,Cmov ah,02
7、hint21hint21hjmp nextshow_char:mov dl,bufsimov ah,02hint21hjmp nextbreak:mov ah,4chint21hend start5.请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上。.model small.stack 10h.databuf db 100 dup(50).codestart:mov ax,datamov ds,axlea dx,bufmov ah,Oahint 21hmov dl,Oahmov ah,02hint21hxor bh,bhmov bl,bull 1 lea si,buf+2
8、;cld;将标志寄存器的方向标志位d f清零lop:lodsb;将子串中SI指针所指的一个字节装入ALcmp al,Wjnb ifupjb show_charnext:dec bxjnz lopjz breakifup:cmp al,Zjbe show_downja show_charshow_char:mov dl,almov ah,02hint21hjmp nextshow_down:add al,a Amov dl,almov ah,02hint21hjmp nextbreak:mov ah,4chint 21hend start6.请任意输入一个字符串,将其中的英文字母全部删除,并将结
9、果显示在屏幕上。.model small.stack 10h.databufdb 100dup(50).codestart:mov ax,datamov ds,axlea dx,bufmov ah,Oahint 21hmov dl,Oahmov ah,02hint 21hxor bh,bhmov bl,bufllea si,buf+2cldlop:lodsbcmp al,Wjnb ifupjb show_charnext:dec bxjnz lopjz breakifup:cmp al,Zjbe nextcmp al,ajnb ifdownifdown:cmp al,zjbe nextjmp
10、show_charshow_char:mov dl,almov ah,02hint21hjmp nextbreak:mov ah,4chint21hend start二、7.现有一组字符串为data,name,time,file,code,path,user,exit,quitjext,请编写程序从键盘输入4 个字符的字符串,若存在将其修改为disk,并将结果在显示器上显示。.model small;换明用的简略定义,这与希不用管.stack 10h;微楼破,一 皴 逑 与;STACK SEGM ENT;DB 20 DUP(?)STACK ENDS.datastring db Oah,data
11、,nam e,tim e,file,code,path,usenquit,texts/b u f db 100 dup(50)rpl db disk;数据做一皴格式;DATA SEGM ENT;string db Oah,data,nam e,tim e,file,code,path,user,quit,texts/;b u f db 10 dup(50)rpl db disk;DATA ENDS;代恁窗一般格式.code;CODE S E G M E N T;ASSUME CS:CODE.DS:DATA,SS:STACKS T A R T PRO C FA R;PUSH DX;MOV AX.
12、0;PUSH AX;MOV AX.DATAS;MOV DS.AX 恒旬之后的copy笆耒就能用;住患多的代喝S T A R T E N D P;GODES ENDS;EN D S T A R Tstart:mov ax.datamov ds,axmov es.axlea dx.bufmov ah.Oah;10孑DOS调用物入冬行串int 21hlea si.string 1;也 置 循环拓傕lea di.b u fcldlop:mov ex.0004hrepz empsb:吮破船人学符串与S I专前秀后的字符事jn z next:判断字符串袅看相等,彳 等&健 跳 出and ex.ex:赳断聂
13、看个字符都和第jz replacejm p nextnext:add si.exmov al.siemp Ql.;判断聂看到字符串借屋jz breakinc silea di.buf2jm p lopreplace:;为小sub si.0004hmov di.silea si.rplmov cxt 0004hrep movsbbreak:;输出lea dx.stringmov ah.09hin t 21 h.exitend s ta rtDATAS SEGM ENTstring db Oah.,d atanam e.tim e,file.code.path.user,quit.text$,b
14、u f db 10 dup(50)rpl db diskDATAS ENDSSTACKS S E G M E N Tdb 20 dup(?)STACKS ENDSCODES S E G M E N TASSUME CS:CODES,DS:DATAS.SS:STACKSS T A R T:MOV AX.DATASMOV DS.AXmov es.axlea dx,bufmov ah.Oahint 21hlea si.stringllea di.buf2c ld【清 方 而 杼 安 危,施 标 去(f la g s)高 存 器 的D F=0,地 位 就 豺si、di信 加;必 是s td则把D F=
15、1,他 征 养 豺 减J也 口 使D F的 保 为0,在 加 打 串 海 行 时,使 他 处 松 递 傀 的 方 式 或 化,这 祥 使 孑 调 整 和 关 段 的 的 当 筋 韭 豺。康 蓝 金 幺STD(S eT Direction f lo g)的 外 名 储 果 和 反,即笈D F的 保 为1。lop:mov ex.0004hrepz em psb 比 装 物 人 学 符$与S I当 京 柒 向 的 学 名 串 jn z nextand ex.exjz replaceJmp nextnext:add si.exmov al.siemp al.jz breakinc silea di.b
16、uf2jm p lopreplace:sub si.0004h【偌 2 花 豺 的 伟,我 而 下 一 个 敢 据 mov di.silea si.rplmov ex.0004hrep movsbbreak:lea dx.stringmov ah.09hint 21 hMOV AH.4OHINT 21HCODES ENDSEN D S T A R T8.现有一组字符串为ram,yes,red,the,get,for,and,key,not,may,请编写程序将他们按ASCII大小排序,并在显示器上显示。.model small.stack 10h.dataraw db Oah,Yam,yes,
17、red,the,get,for,and,key,not,may$count equ($-raw-1)/4.codestart:mov ax,datamov ds,axxor bh,bhmov bl,countcldlop:lea si,rawldec bxand bx,bxjz breaklopl:mov ex,0003hlop2:mov al,siemp al,si+4ja exchangejb noexchdec exjz nextinc sijmp lop2next:add si,exinc simov al,si+4xor al,$jz lopinc sijmp loplnoexch:
18、dec exjmp nextexchange:mov al,sijxchg al,si+4xchg al,sijdec exjz nextinc sijmp exchangebreak:lea dx,rawmov ah,09hint21h.exitend start现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4 个字符的字符串,若存在将其删除,并在显示器上显示。data segmentbufl db data,name,time,file,code,path,user,quit,text$buf2 db
19、 50 dup(?)input db 10 dup(50)data endscode segmentassume ds:data,cs:codestart:mov ax,datamov ds,axmov es,axlea dx,inputmov ah,Oahint21hlea bx,buf2lea si,bufllea di,input2mov ex,0004hcldlop:empsbjnz copydec exjz deletejmp lopnext:mov al,si-1emp al,$jz breaklea di,input2mov ex,0004hjmp lopcopy:add si,
20、exsub si,0005hmov di,bxmov ex,0005hrep movsbmov bx,dijmp nextdelete:inc sijmp nextbreak:mov al,$mov bx-1,almov dl,Oahmov ah,02hint21hlea dx,buf2mov ah,09hint21hmov ah,4chint21hcode endsend start10.现有一组字符串为 data,name,time,file,code,path,user,exit,quit,text,请编写程序将上述字符串排序(升序)并插入disk使其人仍然有序,并在显示器上显示。dat
21、a segmentbufl db data,name,time,file,code,path,user,quit,text$count 1 equ($-bufl)/5buf2 db data,name,time,file,code,path,user,quit,text,disk$count2 equ($-bu/5data endsstack segment stackdb IOdup(?)stack endscode segmentassume ds:data,cs:codesort proc farpush silop:pop sipush sidec bxand bx,bxjz brea
22、klopl:mov ex,0004hlop2:mov al,siemp al,si+5ja exchangejb noexchdec exjz nextinc sijmp lop2next:mov al,si+5xor al,$jz lopinc sijmp loplexchange:mov al,sixchg al,si+5xchg al,siinc sidec exjz nextjmp exchangenoexch:add si,exjmp nextbreak:mov dl,Oahmov ah,02hint21hpop dxmov ah,09hint21hretsort endpstart
23、:mov ax,datamov ds,axmov bx,count 1 +1lea si,buflcall sortmov bx,count2+1lea si,buf2call sortmov ah,4chint21hcode endsend start三、11.键盘输入一个十进制数(字类型),以十六进制的形式输出。data segmentbuf db 10 dup(50)hex db 4 dup(O),h;Oah,coefdw 0001htemp dw OOOOhdata endscode segmentassume cs:code,ds:datastart:mov ax,datamov d
24、s,axlea dx,bufmov ah,Oahint21hmov bl,buff 1 xor bh,bhxor ax,axmov al,Olhlop:mov al,bufbx+1xor ah,ahsub al,30hmov dx,coefmul dxadd temp,axmov ax,coefmov dx,10mul dxmov coef,axdec bxjz showjmp lopshow:mov bx,0mov cl,12lopl:mov ax,tempshr ax,cland al,OOOlhmov hexbx,alsub cl,4inc bxcmp bx,4jz lop2jmp lo
25、plmov bx,4lop2:mov al,hexbx-1cmp al,9ja charjmp numnext:dec bxjz breakjmp Iop2char:add hexfbx-1,a1-Oahjmp nextnum:add hexbx-1,Ojmp nextbreak:mov dl,Oahmov ah,02hint 21hlea dx,hexmov ah,O9hint21hmov ah,4chint21hcode endsend startax存 字 a l存字节cb w 字节一字(扩展)读取输入数值入bxxchg ax,bx 存入 axmov ex,10mul exadd bx,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPU 汇编语言 上机 考试题
限制150内