- 42.50 KB
- 2022-04-22 11:48:33 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'5.1试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来.modelsmall.stack100H.codemainprocfarStart: pushdx movax,0 pushax movah,01H int21H cmpal,61H jllop1 cmpal,7BH jgelop1 subal,20H movdl,al lop1:movah,2 int21H retEndstart
5.2编写一个程序,从键盘接受一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符..modelsmall.386.codeMAINPROCFARstart: pushds subax,ax pushax input: movah,7H int21Hcmpe: cmpal,20H JE exit cmpal,61H JL input cmpal,7AH JG inputprint: subal,01H movdl,al movah,02H int21H
addal,01H movdl,al movah,02H int21H addal,01H movdl,al movah,02H int21H ;输出换行回车 movdl,0AH movah,02H int21H jmpinputexit: retMAINENDPENDstart5.3将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL、DL中。.modelsmall.dataxDB4dup(?).stack100H.codeMAINPROCFARstart:
pushds andax,00H pushax movax,1234H movcx,04H movsi,00Hlop: pushcx mov cl,04H rolax,cl pushax andal,0FH movBYTEPTRx[si],al popax popcx addsi,2 Looplop moval,[X] movbl,[X+2] movcl,[X+4] movdl,[X+6]print: movah,02H int21H movdl,al movah,02H
int21H movdl,bl movah,02H int21H movdl,cl movah,02H int21Hexit: retMAINENDPENDstart5.4编写一个程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示"MATCH",若不同在显示:"NOMATCH"。.modelsmall.dataSTRING1DB"Imuststudyhard"STRING2DB"Imuststudyhard"X DB"MATCH.$"Y DB"NOMATCH.$".stack100H.codemainprocfarStart: pushdx movax,0 pushax
movax,@data movds,ax moves,ax leasi,STRING1 leadi,STRING2 cld movcx,(string2-string1)/typeSTRING2 retEndstart5.5编写一个程序,要求能从键盘接收一个个位数N,然后响铃N次,(响铃的ASCII为07)。这题比较有意思,呵呵。modelsmall.codemainprocfarstart: pushds subax,ax pushaxinput: movah,01H int21H cmpal,20H je exit
cmpal,30H jleinput cmpal,3AH jgeinput subal,30H movcx,ax andcx,0FFHlop: movdl,07H movah,2H int21H looplop jmpinputexit: retmainendpendstart5.6编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组和负数数组N,并分别把这两个数组中的数据个数显示出来。.modelsmall.386.dataMDB1,2,3,4,5,6,7,8,9,10,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10PDB20dup(?)NDB20dup(?).codeMAINPROCFARstart:
PUSHds AND ax,0 PUSHax MOV ax,@data mov ds,ax MOV bx,0 MOV si,0 MOV di,0 MOV cx,20D cmpe : CMP M[bx],0 JL ifLowhight: MOV al,byteptrM[bx] MOV byteptrP[si],al inc si JMP commonContrlifLow: MOV al,byteptrM[bx] MOV byteptrN[di],al INC dicommonContrl: INC bx loopcmpe mov ax,si callshowNumber callprintCR
mov ax,di callshowNumberexit: retMAINENDP;;;;;;;;;;;;;;;;;注意,ShowNumber这个子过程有问题,请自行修改;;;;;;;;;;;;;;;;showNumberPROCNEARcovernum: DAA MOV dx,ax MOV cl,2Hshow: ROL dl,4H pushdx AND dl,0fH ADD dl,30H MOV ah,02H int 21H pop dx loopshow retshowNumberENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;printCRPROCNEAR movdl,0aH movah,02H int21H movdl,0dH movah,02H
int21H retprintCRENDPendstart5.7编制一个汇编语言程序,求出首地址为DATA的100D字数组中的最小偶数,并把它放在AX中。 此题根据题意要求应该使用完整汇编格式,因为精简格式也使用DATA....dataaresegmentDATADW3322H,4555H,200H,3544H,1245Hnum DB($-DATA)/2dataareendscodesegmentassumecs:code,ds:dataareMAINPROCFARstart: pushds mov ax,0H pushax mov ax,dataare mov ds,ax mov dx,0H ;偶数数量计数 mov cx,Wordptr[num] mov si,0HisO: mov bx,WORDPTRDATA[si]
shr bx,1H jnc addDX jmp commonControladdDX: ADD dx,1H cmp dx,1H je firstAXValuecompare: mov bx,WORDPTRDATA[si] cmp bx,ax jge commonControl mov ax,bxcommonControl: ADD si,2H loopisO jmp exitfirstAXvalue: movax,WORDPTRDATA[si] jmpcompareexit: retMAINENDPcodeendsENDstart5.8没有做。。5.9编写一个汇编语言程序,要求从键盘上接收一个思维的十六位进制数,并在终端上显示与它等值的二进制数。.model
small.386.codemainprocfarstart: pushds mov ax,0 pushax mov ax,0 mov cx,4 mov dx,0input: mov ah,1H int 21H cmp al,30H jl input cmp al,39H jle s cmp al,61H jl input cmp al,66H jg input sub al,27Hs: sub al,30H add dl,al cmp cx,1H je f rol dx,4 f:
loopinputexit: callprint retmainendpprintprocnear movcx,10Hp: rol dx,1 pushdx and dx,1 add dx,30H mov ah,2 int 21H pop dx looppretprintendpendstart 5.10设有一段英文,其变量字符名为ENG,并以$字符结束。试编写一程序,查对单词SUN在该文中的出现次数,并以格式"SUNXXXX"显示出次数。.modelsmall.386.data ENG db"SUN"sSUNJAVA",24H ;;;;24H=$ MESSAGEdb"SUN:","$".stack
100H.codeMAINPROCFARstart: PUSHDS AND AX,0 PUSHAX MOV AX,@data MOV DS,AX ;------------------------ MOV AX,0H MOV SI,1HsubSI1: SUB SI,1HsubSI2: SUB SI,1HcompareS: ADD SI,1H MOV DL,ENG[SI] CMP DL,24H JE print CMP DL,53H JNE compareScompareU: ADD SI,1H MOV DL,ENG[SI] CMP DL,55H JNE subSI2compareN: ADD SI,1H
MOV DL,ENG[SI] CMP DL,4EH JNE subSI1 INC AX JMP comparesprint: LEA DX,MESSAGE PUSHAX MOV AH,09H INT 21H POP AX callshowNumberexit: retMAINENDP;;;;;;;;;;;;;;;;;注意,ShowNumber这个子过程有问题,请自行修改;;;;;;;;;;;;;;;;showNumberPROCNEARcovernum: DAA MOV dx,ax MOV cl,4Hshow: ROL dx,4H pushdx AND dx,0fH ADD dx,30H MOV ah,02H int 21H
pop dx loopshow retshowNumberENDPENDstart 5.11从键盘输入一系列以$为结束副的字符串,然后对其中的非数字字符计数,并显示出计数结果。.modelsmall.386.codeMAINPROCFARstart: pushds mov ax,0 pushax mov cx,0input: mov ah,1H int 21Hcompare: cmp al,24H je print cmp al,30H jl addCount cmp al,39H jg addCountaddCount: add ax,1H
jmp inputprint: callshowNumberexit: retMAINENDP;;;;;;;;;;;;;;;;;注意,ShowNumber这个子过程有问题,请自行修改;;;;;;;;;;;;;;;;showNumberPROCNEARcovernum: DAA MOV dx,ax MOV cl,2Hshow: ROL dl,4H pushdx AND dl,0fH ADD dl,30H MOV ah,02H int 21H pop dx loopshow retshowNumberENDPENDstart5.12有一个首地址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。.modelsmall.386.stack
100H.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.codeMAINPROCFARstart: pushds and ax,0 pushax mov ax,@data mov ds,ax;---------------------- mov ax,0H mov bx,64H mov cx,64H mov si,0FFFEHrepeat: ADD si,2H cmp MEM[si],0H JE calls looprepeatcalls: INC ax callsort cmp ax,1H
JE lastValue DEC cx jmp repeatexit: retlastValue: mov mem[bx],0H DEC cx jmp repeat MAINENDPsortPROCNEAR pushcx pushsi sub si,2Hs: add si,2H mov dx,mem[si] mov mem[si+2],dx loopsreturn: popsi popcx retsortENDPENDstart'
您可能关注的文档
- 《AutoCAD简明教程》第2版-习题答案.doc
- 《C++程序设计教程 第2版》教学素材习题04答案.doc
- 《C程序设计》课后习题答案(4-6章).doc
- 《C程序设计》课后习题答案(第8章).doc
- 《C语言》期末考试模拟复习题一(含答案).doc
- 《C语言程序设计(何钦铭 颜晖 主编)》习题8答案.doc
- 《C语言程序设计》第6章习题答案.doc
- 《C语言程序设计案例教程》练习题答案.docx
- 《EDA技术与VHDL基础》课后习题答案.doc
- 《JavaScript 程序设计基础教程(第2版)》习题答案.doc
- 《JavaWeb程序开发入门》课后练习(含答案).docx
- 《Java基础入门》_课后习题答案1-6.doc
- 础入门》_课后题答案_stu.doc
- 础入门》_课后题答案_仅供参考.doc
- 《Java程序设计》练习题答案.doc
- 《Java程序设计》课后习题参考答案.doc
- 《Java语言程序设计基础教程》习题解答.doc
- 《MATLAB及在电子信息类课程中的应用》习题答案电子科大第二版.doc
相关文档
- 施工规范CECS140-2002给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程
- 施工规范CECS141-2002给水排水工程埋地钢管管道结构设计规程
- 施工规范CECS142-2002给水排水工程埋地铸铁管管道结构设计规程
- 施工规范CECS143-2002给水排水工程埋地预制混凝土圆形管管道结构设计规程
- 施工规范CECS145-2002给水排水工程埋地矩形管管道结构设计规程
- 施工规范CECS190-2005给水排水工程埋地玻璃纤维增强塑料夹砂管管道结构设计规程
- cecs 140:2002 给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程(含条文说明)
- cecs 141:2002 给水排水工程埋地钢管管道结构设计规程 条文说明
- cecs 140:2002 给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程 条文说明
- cecs 142:2002 给水排水工程埋地铸铁管管道结构设计规程 条文说明