新能源课件网站开发新能源,投注类网站怎么做自动软件,免费写文案神器,免费的视频网站推广软件输入一串字符串#xff0c;判断字符串里面是否包含数字#xff0c;如果包含数字输出把cl的第五位设置为1#xff0c;否则设置为0
程序运行#xff1a; 代码#xff1a; datas segmentSTRING_maxLength db 0ffhSTRING_Length d…输入一串字符串判断字符串里面是否包含数字如果包含数字输出把cl的第五位设置为1否则设置为0
程序运行 代码 datas segmentSTRING_maxLength db 0ffhSTRING_Length db ?STRING db 100h dup(?)inputPrompt db input a line:$outputPrompt db cl$nextLine db 0dh,0ah,$datas endsstacks segment stackdb 100h dup(?)stacks endscodes segmentassume cs:codes,ds:datas,ss:stacks
main proc far
start:push dsmov ax,0hpush axmov ax,datas ;初始化dsmov ds,ax;输出输入一行字符lea dx,inputPromptmov ah,9int 21h;输入一行字符lea dx,STRING_maxLengthmov ah,10int 21h;输出换行lea dx,nextLinemov ah,9int 21h;mov dl,cl;call toBinaryPrintmov ch,STRING_Length ;把字符串的长度移至chand cl,11011111b ;初始化cl第5位为0;若字符串长度为0直接输出clcmp ch,0 jz breakmov bx,0 s:mov al,STRING[bx] ;将STRING中单元移至alcmp al,0 ;比较al与0的大小jl next ;若al0则跳转cmp al,9 ;否则比较al与9的大小jg next ;若al9则跳转or cl,00100000b ;否则设置cl的第五位为1jmp break ;跳出循环 next:add bx,type STRING ;STRING索引移至下一个单元dec ch ;计数器减1 cmp ch,0 ;比较ch与0ja s ;若ch0则循环继续break:;输出cl的二进制提示lea dx,outputPromptmov ah,9int 21h;输出clmov dl,cl ;将cl移至dlcall toBinaryPrintretmain endptoBinaryPrint proc near;保存寄存器push dspush axpush cxpush dxpush bx;设置ds为cspush cspop ds;把目的数dl转换成二进制字符串mov cx,8 ;设置循环次数mov bx,0 ;设置binaryArray下标bin:shl dl,1 ;左移一位jnc zero ;移除的位不为1即0跳转mov binaryArray[bx],1 ;若移除的位为1则设置binaryArray[bx]为‘1’jmp next ;跳转至zero:mov binaryArray[bx],0 ;若移除的位为0则设置binaryArray[bx]为‘0’next:add bx,type binaryArray ;binaryArray数组下标移至下一个元素loop binmov binaryArray[bx],b ;在二进制字符串后加上二进制单位mov binaryArray[bx1],$ ;设置字符串的结束标志;输出目的数的二进制lea dx,binaryArraymov ah,9int 21h;恢复寄存器 pop bx pop dx pop cxpop axpop dsretbinaryArray db 16 dup(?)
toBinaryPrint endp
codes endsend main