1、1、在屏幕上输出:*解:code segmentassume cs:codestart: mov bx,9rotate: mov dl,*mov cx,bxprint: mov ah,02hint 21hloop printmov dl,0ahmov ah,02hint 21hmov dl,0chmov ah,02hint 21hsub bx,2jns rotatemov ah,4chint 21hcode endsend start2、从键盘上接收一个字符,如果为小写字母则显示其对应的大写字母。解:code segmentassume cs:codestart: mov ah,01hint
2、21hcmp al,ajl exitcmp al,zjg exitmov dl,alsub dl,20hmov 21hexit: mov ah,4chint 21hcode endsend start(题 1 的) 思路:令 cx=9,dl=*,循环输出loop dl 并且令 cx 自减 2;使用换行语句;直到 cx 小于 0,退出。此处注意 dl 的值是否改变,以免输出的不是*。3、键盘接收一个小写字母,然后找出它的前导字母和后续字母,按顺序显示这三个字符。解: codesegmentassume cs:codestart:mov ah,01hint 21hmov dl,aldec dlcm
3、p al,ajne print1mov dl,zprint1: mov ah,02hint 21hmov dl,almov ah,02hint 21hmov dl,alinc dlcmp al,zjne print2mov dl,aprint2: mov ah,02hint 21hmov ah,4chint 21hcode endsend start4、求 z=(w-x)*10+5/(x+y),其中 x,y,w为字节型的带符号数,数值分别为38H,28H,48H.解:data segmentx db 38hy db 28hw db 48hz db ?data endscodesegmentas
4、sume cs:code,da:datastart:mov ax,datamov ds,axmov al,wsub al,xmov bl,10imul bladd bl,yidiv blmov z,almov z+1,ahmov ah,4chint 21hcode endsend start5、首地址 BUF 的内存单元存放的 10 个字节数,统计其中单元内容为 0 的单元个数,并将结果显示出来。解:data segmentBUF db 1,2,0,4,5,7,0,0,5,6,8data endscode segmentassume cs:code,ds:datastart:mov ax,da
5、tamov ds,axmov cx,10mov dl,0lea bx,BUFrotate: cmp bx,0jne nextinc dlnext:inc bxloop rotateadd dl,30Hmov ah,02Hint 21Hmov ah,4chint 21hcode endsend start6、统计一个有 10 个人的班级中男女生的人数,男生人数放到变量 x,女生人数放到变量 y 中。解:data segmentstu db 0,1,0,0,1,1,1,0,1,0x db ?y db ?data endscode segmentassume cs:code,ds:datastart
6、:mov ax,datamov ds,axmov cx,10lea bx,stumov dh,0mov dl,0next:cmp bx,0ine rotateinc dljmp exitrotate: int dhexit: inc bxloop nextmov x,dhmvo y,dlmov ah,4chint 21hcode endsend start7、设首地址为 BUF 的存储单元,存放 10个字数据,求出它们的和,并将结果存入变量 sum 中。解: data segmentbuf dw 10 dup(2)sum dw ?data endscode segmentassume cs:c
7、ode,ds:datastart:mov ax,datamov ds,axmov cx,10mov ax,0lea bx,bufrotate: add ax,bxadd bx,2loop rotatemov sum,axmov ah,4chint 21hcode endsend start8、在 BUF1 中和 BUF2 两个数据区中各定义 10 个带符号字符数据,将它们的对应项的绝对值取和,并将结果存入以 sum 为首地址的数据区中。(如 BUF1 的第一项和 BUF2 的第一项的绝对值之和存入 sum的地址中)解:data segmentbuf1 dw -56,24,13, 3,-10,5
8、1,6,44,-14,-21buf1 dw 4,-5,24,-19,- 6,61,25,27,-42,-17sum dw 10dup(?)data endcode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov cx,10mov bx,0rotate: mov ax,buf1bxcmp ax,0jns next1neg axnext1: mov dx,buf2bxcmp dx,0jns next2neg dxnext2: add ax,dxmov sumbx,axadd bx,2loop rotatemov ah,4chint 21hcode endsend start