ZKX's LAB

汇编串 并转换实验 单片机串并转换实验

2020-09-25知识11

汇编语言小写字母转换为大写字母的实验(MASM) DATAS SEGMENTMSG1 DB 'Input the string:',13,10,'$'MSG2 DB 13,10,'The string is:$'STR DB 255,?256 DUP('$')DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA DX,MSG1;显示2113“5261INPUT THE STRING:”4102MOV AH,9INT 21HLEA DX,STRMOV AH,0AH;输入字符1653串INT 21HLEA DX,MSG2;显示 The string is:MOV AH,9INT 21HMOV CL,STR+1MOV CH,0MOV STR,13MOV STR+1,10MOV BX,0LOP:CMP BYTE PTR STR[BX+2],'a'JB NEXTCMP BYTE PTR STR[BX+2],'z'JA NEXTSUB BYTE PTR STR[BX+2],32NEXT:INC BXLOOP LOPLEA DX,STR;显示MOV AH,9INT 21HMOV AH,4CHINT 21HCODES ENDSEND START

汇编语言,求注释;另外还有如何输入一串字符串将其转换为ASCII码。不太会字符串的操作输入输出和循环 ;楼主的程序,有好些冗余指令,不好理解。简化一下,功能相同:DATA SEGMENTMES1 DB 'Enter a word:',0AH,0DH,'$'CHANGE DB '->;'SD DB?'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MES1MOV AH,09H;show messageINT 21HMOV AH,01HINT 21H;ENTER WORDMOV AH,0MOV CL,16DIV CLADD AX,3030HCMP AH,3AHJB D2ADD AH,7D2:CMP AL,3AHJB D3ADD AL,7D3:MOV WORD PTR SD,AXMOV DX,OFFSET CHANGEMOV AH,09H;show messageINT 21HMOV AH,7;判断是否有按键按下INT 21MOV AX,4C00H;go back to dosINT 21HCODE ENDSEND START

汇编语言,输入一个长度为n的字符串,将大写字母转化为小写 ;从键盘输入一个长度为n的字符串,0。要求:1,输入和输出之前必须先显示提示信息,提示必须独占一行,输入用回车符结束。2,将字符串中的大写字母转化为小写字母并将转化后的字符串显示在屏幕。3,统计字符串中的非数字字符数,用十进制输出。4,输出字符串中包含的小写字母中ascii值最小的一个。ASSUME CS:CC,DS:QQQQ SEGMENTMSG1 DB 'Input the string:',13,10,'$'MSG2 DB 13,10,'The string is:'STR DB 100,?101 DUP('$')MSG3 DB 13,10,'The CHAR is:'NN DB '00'MSG4 DB 13,10,'The small is:'SM DB 'No.$'QQ ENDSCC SEGMENTSTART:MOV AX,QQMOV DS,AXLEA DX,MSG1;显示“INPUT THE STRING:”MOV AH,9INT 21HLEA DX,STRMOV AH,0AH;输入字符串INT 21HMOV CL,STR+1MOV CH,0CMP CX,0JNZ CALJMP EXITCAL:MOV STR,13MOV STR+1,10MOV AL,'z'+1MOV BX,0LOP:CMP BYTE PTR STR[BX+2],'A'JB NEXT1CMP BYTE PTR STR[BX+2],'Z'JA NEXT1ADD BYTE PTR STR[BX+2],32NEXT1:CMP BYTE PTR STR[BX+2],'0'JB NNNNCMP BYTE PTR STR[BX+2],'9'JBE NEXT2NNNN:INC BYTE PTR NN+1CMP BYTE PTR NN+1,'9'JNA NEXT2MOV BYTE PTR NN+1,'0'INC 。

一道汇编实验题:用子程序实现对输入的数字的转化与显示 大佬帮忙看看程序哪里出错了 CODE SEGMENTASSUME CS:CODESTART:MOV AH,1INT 21HCMP AL,13JE@e79fa5e98193e4b893e5b19e31333363396433EXITCALL OUT0JMP STARTEXIT:MOV AH,4CHINT 21HOUT0 PROC NEARPUSH AXMOV AH,2MOV DL,32INT 21HPOP AXMOV BL,ALMOV CL,4SHR AL,CLCALL OUTPUTMOV AL,BLAND AL,0FHCALL OUTPUTMOV AH,2MOV DL,'H'INT 21HMOV DL,13INT 21HMOV DL,10INT 21HRETOUT0 ENDPOUTPUT PROCCMP AL,9JBE L1ADD AL,37HMOV DL,ALMOV AH,02HINT 21HJMP L2L1:ADD AL,30HMOV DL,ALMOV AH,02HINT 21HL2:RETOUTPUT ENDPCODE ENDSEND START

怎么用汇编语言将数字组成的字符串转换成数值 假定这些字串是2113正整数;先把5261寄存器清零,比如 Mov ax,0先取那个字串的4102最高位字符,然1653后转成相应的数字,比如“0”的ASCII码是48,把这个串减去48就是所代表的数字然后把这个数加到寄存器中如果还有字串要加入的话,就把寄存器乘10,加入新的字符直到最后出了这个字串的数值。其他格式的类似,比如小数位,比如负数

#al#data

随机阅读

qrcode
访问手机版