汇编题 清考 求大神帮解决啊

汇编,完成多分支,比如 y=9,x0

1个回答

写多个跳转就可以了。

ldudty
ldlxR 一点都不会啊 汇编落伍了 这课早停了 网上没都没资料
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何用汇编语言编写程序 求大神帮忙

数据段定义10个连续的16位无符号数FBNC-ARRAY(每个数组元素占用一个字,共10个元素,用于保存斐波那契数列的前10项),其中前两个元素分别是0和1,此外还要定义一个双字变量SUM,编写程序,计算所有10个斐波那契数据的和,保存在SUM中。

汇编程序,求大神讲解

汇编上机题:键盘输入一个包含若干个“*”的字符串,试编写子程序分别将字符串前端、中间、最后面的“*”及其所有“*”去除。

汇编语言 如图这个问题 求大神解决

![图片说明](https://img-ask.csdn.net/upload/201706/08/1496913504_829232.jpeg)

ollydbg反汇编问题,求大神指点

如题,有一个c#程序,现在我只能查看主窗体的.text块的内容(主要是为了查看窗体中label的一些属性等等),现在我要怎么做才可以查看子窗体的相同内容?求大神指点![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/54.gif)急求@_@

求大神帮看看这段汇编代码

学校课程设计,这段是步进电机的控制代码,用键盘输入,在六位LED七段数码显示管上显示,求大神把下面代码加上注释,实在不行就帮忙看下键盘显示那部分是怎么回事,有重谢。 ORG 0A30H ;? MONIT: MOV SP,#50H MOV 7EH,#00H MOV 7DH,#02H MOV R0,#7CH MOV A,#08H MOV R4,#04H MONIT1: MOV @R0,A DEC R0 DJNZ R4,MONIT1 MOV A,#7EH MOV DPTR,#1FFFH ;DISPFLAG MOVX @DPTR,A MOV 76H,#00H MOV 77H,#00H KEYDISP0:LCALL KEY JC DATAKEY AJMP MONIT2 DATAKEY:LCALL DATAKEY1 DB 79H,7EH SJMP KEYDISP0 MONIT2: CJNE A,#16H,KEYDISP0 LCALL DISP MOV A,7AH ANL A,#0FH SWAP A ADD A,79H MOV R6,A MOV A,7CH ANL A,#0FH SWAP A ADD A,7BH MOV R7,A MOV A,7EH CJNE A,#00H,MONIT4 MONIT3: MOV P1,#03H LCALL DELAY0 LCALL MONIT5 MOV P1,#06H LCALL DELAY0 LCALL MONIT5 MOV P1,#0CH LCALL DELAY0 LCALL MONIT5 MOV P1,#09H LCALL DELAY0 LCALL MONIT5 SJMP MONIT3 MONIT4: MOV P1,#09H LCALL DELAY0 LCALL MONIT5 MOV P1,#0CH LCALL DELAY0 LCALL MONIT5 MOV P1,#06H LCALL DELAY0 LCALL MONIT5 MOV P1,#03H LCALL DELAY0 LCALL MONIT5 SJMP MONIT4 MONIT5: DEC R6 CJNE R6,#0FFH,MONIT6 DEC R7 CJNE R7,#0FFH,MONIT6 LJMP MONIT MONIT6: LCALL MONIT7 RET MONIT7: MOV R0,#79H MOV A,R6 LCALL MONIT8 MOV A,R7 LCALL MONIT8 LCALL DISP RET MONIT8: MOV R1,A ACALL MONIT9 MOV A,R1 SWAP A MONIT9: ANL A,#0FH MOV @R0,A INC R0 RET DELAY0: MOV R0,#7DH MOV A,@R0 SWAP A MOV R4,A DELAY1: MOV R5,#80H DELAY2: DJNZ R5,DELAY2 LCALL DISP DJNZ R4,DELAY1 ;*** RET DATAKEY1:MOV R4,A MOV DPTR,#1FFFH MOVX A,@DPTR MOV R1,A MOV A,R4 MOV @R1,A CLR A POP 83H POP 82H MOVC A,@A+DPTR INC DPTR CJNE A,01H,DATAKEY3 DEC R1 CLR A MOVC A,@A+DPTR DATAKEY2:PUSH 82H PUSH 83H MOV DPTR,#1FFFH MOVX @DPTR,A POP 83H POP 82H INC DPTR PUSH 82H PUSH 83H RET DATAKEY3:DEC R1 MOV A,R1 SJMP DATAKEY2 KEY0: MOV R6,#20H MOV DPTR,#1FFFH MOVX A,@DPTR MOV R0,A MOV A,@R0 MOV R7,A MOV A,#10H MOV @R0,A KEY3: LCALL KEYDISP JNB 0E5H,KEY2 DJNZ R6,KEY3 MOV DPTR,#1FFFH ;*** MOVX A,@DPTR MOV R0,A ;*** MOV A,R7 MOV @R0,A KEY: MOV R6,#50H KEY1: LCALL KEYDISP JNB 0E5H,KEY2 ;*** DJNZ R6,KEY1 SJMP KEY0 KEY2: MOV R6,A MOV A,R7 MOV @R0,A MOV A,R6 ;A=KEYDATA KEYEND: RET KEYDISP:LCALL DISP LCALL KEYSM MOV R4,A ;KEYDATA MOV R1,#76H ;DATASAME TIME MOV A,@R1 MOV R2,A INC R1 MOV A,@R1 MOV R3,A ;LAST KEYDATA XRL A,R4 ;TWO TIME KEYDATA MOV R3,04H ;NEW KEYDATA---R3 MOV R4,02H ;TIME---R4 JZ KEYDISP1 MOV R2,#88H MOV R4,#88H KEYDISP1:DEC R4 MOV A,R4 XRL A,#82H JZ KEYDISP2 MOV A,R4 ;R4=TIME XRL A,#0EH JZ KEYDISP2 MOV A,R4 ORL A,R4 JZ KEYDISP3 MOV R4,#20H ;R4=20H DEC R2 LJMP KEYDISP5 KEYDISP3:MOV R4,#0FH KEYDISP2:MOV R2,04H MOV R4,03H KEYDISP5:MOV R1,#76H MOV A,R2 MOV @R1,A INC R1 MOV A,R3 MOV @R1,A MOV A,R4 ;**** CJNE R3,#10H,KEYDISP4 KEYDISP4:RET DISP: SETB 0D4H MOV R1,#7EH MOV R2,#20H MOV R3,#00H DISP1: MOV DPTR,#0FF21H MOV A,R2 MOVX @DPTR,A MOV DPTR,#DATA1 MOV A,@R1 MOVC A,@A+DPTR MOV DPTR,#0FF22H MOVX @DPTR,A DISP2: DJNZ R3,DISP2 DEC R1 CLR C MOV A,R2 RRC A MOV R2,A JNZ DISP1 MOV A,#0FFH MOV DPTR,#0FF22H MOVX @DPTR,A CLR 0D4H RET DATA1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH KEYSM: SETB 0D4H MOV A,#0FFH MOV DPTR,#0FF22H MOVX @DPTR,A ;OFF DISP KEYSM0: MOV R2,#0FEH MOV R3,#08H MOV R0,#00H KEYSM1: MOV A,R2 MOV DPTR,#0FF21H MOVX @DPTR,A NOP RL A MOV R2,A MOV DPTR,#0FF23H MOVX A,@DPTR CPL A NOP NOP NOP ANL A,#0FH JNZ KEYSM2 INC R0 ;NOKEY DJNZ R3,KEYSM1 SJMP KEYSM10 KEYSM2: CPL A ;YKEY JB 0E0H,KEYSM3 MOV A,#00H SJMP KEYSM7 KEYSM3: JB 0E1H,KEYSM4 MOV A,#08H SJMP KEYSM7 KEYSM4: JB 0E2H,KEYSM5 MOV A,#10H SJMP KEYSM7 KEYSM5: JB 0E3H,KEYSM10 MOV A,#18H KEYSM7: ADD A,R0 CLR 0D4H CJNE A,#10H,KEYSM9 KEYSM9: JNC KEYSM10 MOV DPTR,#DATA2 MOVC A,@A+DPTR KEYSM10:RET DATA2: DB 07H,04H,08H,05H,09H,06H,0AH,0BH DB 01H,00H,02H,0FH,03H,0EH,0CH,0DH END

SO库通过IDA反汇编,求大神解释

SO库通过IDA反汇编如下代码,求大神告知这是何等算法,只是单纯的des加密么 ``` int __fastcall Java_com_yukang_yyjk_util_DesUtil_makeskey(_DWORD *a1) { int v1; // r2@1 _DWORD *v2; // r4@1 char *s; // ST08_4@1 char *v4; // ST10_4@1 char *v5; // ST14_4@1 size_t v6; // r7@1 size_t n; // ST0C_4@1 size_t v8; // ST18_4@1 void *v9; // r5@1 char *v10; // r3@1 int v11; // r6@3 int result; // r0@3 int v13; // [sp+30h] [bp-38h]@1 int v14; // [sp+34h] [bp-34h]@1 int v15; // [sp+38h] [bp-30h]@1 char v16; // [sp+3Ch] [bp-2Ch]@1 int v17; // [sp+4Ch] [bp-1Ch]@1 v1 = *a1; v17 = _stack_chk_guard; v2 = a1; s = (char *)(*(int (**)(void))(v1 + 676))(); v4 = (char *)(*(int (__fastcall **)(_DWORD *))(*v2 + 676))(v2); v5 = (char *)(*(int (__fastcall **)(_DWORD *))(*v2 + 676))(v2); v14 = 1580348513; v13 = 1715758187; v15 = 4203302; v6 = j_j_strlen(s); n = j_j_strlen(v4); v8 = j_j_strlen(v5); j_j_memset(&v16, 0, 0x10u); v9 = j_j_malloc(v6 + n + v8 + 24); j_j_memcpy(v9, s, v6); j_j_memcpy((char *)v9 + v6, v4, n); j_j_memcpy((char *)v9 + v6 + n, v5, v8); j_j_memcpy((char *)v9 + v6 + n + v8, "98765432abcdefgh11223344", 0x18u); v10 = (char *)v9; do { *v10 ^= v10[8] ^ v10[16]; ++v10; } while ( v10 != (char *)v9 + 8 ); desenc_ecb(v9, 8, &v13, &v16); (*(void (__fastcall **)(_DWORD *))(*v2 + 680))(v2); (*(void (__fastcall **)(_DWORD *))(*v2 + 680))(v2); (*(void (__fastcall **)(_DWORD))(*v2 + 680))(v2); v11 = (*(int (__fastcall **)(_DWORD *, signed int))(*v2 + 704))(v2, 8); (*(void (__fastcall **)(_DWORD *, int, _DWORD, signed int))(*v2 + 832))(v2, v11, 0, 8); j_j_free(v9); result = v11; if ( v17 != _stack_chk_guard ) j_j___stack_chk_fail(v11); return result; } ```

求大神帮忙写一个汇编程序设计

汇编实现猜数字游戏 首先用户输入猜的次数, 游戏开始循环。 数字有四位,格式为: 1234 每次用户输入一个数字,游戏都会显示四个字符: A 代表数字和位置都正确 B 代表数字正确, 但是位置不对 ?代表没有这个数字 比如: 假如要猜的数字是4321, 用户输入4321, 程序显示AAAA, 用户获胜! 假如要猜的数字是4321, 用户输入1234, 程序显示BBBB 假如要猜的数字是4321, 用户输入5674, 程序显示???B 假如要猜的数字是4321, 用户输入5678, 程序显示???? 如果在给定的次数里, 用户没有猜到数字, 则用户失败,游戏结束。

这道汇编题有大神会吗?求好心人写完整程序

数据段定义一个16个字节的连续数据块BUFFER(其中每个数据都定义为字节,初始化时全部填入ASCII码),一个字节变量TARG(即查询的条件,保存查找的目标ASCII码),一个字节变量FLAG(当查找成功时设置为FFH,否则为00H),一个16个字节的数组ADDR(当查找失败,所有数组元素设置为00H,查找成功,则把所有找到的数组元素的下标的对应项设为FFH,其他为00H,如原数组BUFFER中的第3号数据符合查找要求,则对应的ADDR的第三项设置为FFH)。编写查询程序,找到所有的数据方可退出程序,设置ADDR和FLAG的值。 (附加要求:使用DOS功能调用把运算结果打印到屏幕上)

急急急急急急汇编报错求大神帮忙改错

include io32.inc .data m1 byte ' 代码转换系统 ',13,10,0 ;菜单 m2 byte '----------------------------------------------',13,10,0 ;分割线 m3 byte ' 编号 操作 ',13,10,0 ma byte ' a 实现大写字母向小写字母的转换',13,10,0 mb byte ' b 实现小写字母向大写字母的转换',13,10,0 mc byte ' c 实现二进制向十六进制数的转换',13,10,0 md byte ' d 实现十六进制向二进制数的转换',13,10,0 me byte ' e 实现十六进制向十进制数的转换',13,10,0 mq byte ' q 退出',13,10,0 m_err byte ' 输入错误,请重新输入',13,10,0 m_meau byte '请输入菜单中的编号: ',0 m_inputs byte '请输入一个小写字母: ',0 m_inputl byte '请输入一个大写字母: ',0 m_outputl byte '对应的小写字母: ',0 m_outputs byte '对应的大写字母: ',0 m_input1 byte '请输入二进制位数: ',0 m_input11 byte '请输入二进制数: ',0 m_output1 byte '转换后的十六进制数: ',0 m_output2 byte '转换后的二进制数: ',0 m_input3 byte '请输入一个十六进制数: ',0 m_output3 byte '转换后的十进制数: ',0 array byte 8 dup (0) ;用字符串数组保存十六进制数 sum dword ? ;十进制数变量 len byte ? ;字符串数组的长度 m byte ? array1 byte 100 dup (0) ;定义一个数组用来保存初始二进制数 array2 byte 100 dup (0) ;用来保存转换后的十六进制数 n dword ? k dword ? j dword ? .code start: mov eax,offset m1 ;显示菜单中的内容 call dispmsg mov eax,offset m2 call dispmsg mov eax,offset m3 call dispmsg mov eax,offset ma call dispmsg mov eax,offset mb call dispmsg mov eax,offset mc call dispmsg mov eax,offset md call dispmsg mov eax,offset me call dispmsg mov eax,offset mq call dispmsg meau: mov eax,offset m_meau call dispmsg ;提示输入相应的菜单编号 call readc ;输入对应的编号 call dispcrlf ;换行 cmp al,'a' ;判断输入 jz a ;若输入‘a’,则跳转到标识符‘a’ cmp al,'b' jz b ;若输入‘b’,则跳转到标识符‘b’ cmp al,'c' jz cc ;若输入‘c’,则跳转到标识符‘cc’ cmp al,'d' jz e ;若输入‘d’,则跳转到标识符‘e’ cmp al,'e' jz e ;若输入‘e’,则跳转到标识符‘e’ cmp al,'q' jz q ;若输入‘q’,则跳转到标识符‘q’ mov eax,offset m_err call dispmsg ;输入错误,提示错误的信息 jmp meau ;大写字母向小写字母的转换 returna: mov eax,offset m_err call dispmsg a: mov eax,offset m_inputl call dispmsg ;提示输入一个大写的字母 call readc ;获得字母 mov bl,al ;将输入的内容存储到bl中 call dispcrlf ;换行 cmp al,'A' ;判断输入的字母是否合法 jb returna ;如果比'A'小,则跳转到returna标识符 cmp al,'Z' ja returna ;如果比'Z'大,则跳转到returna标识符 call dispc ;显示字母 mov eax,offset m_outputl call dispmsg ;输入正确,则提示输出相应的小写字母 add bl,20h ;实现大写向小写的转换 mov al,bl call dispc ;显示转换后的字母 call dispcrlf ;换行 jmp meau ;小写字母向大写字母的转换 returnb: mov eax,offset m_err call dispmsg b: mov eax,offset m_inputs call dispmsg ;提示输入一个小写字母 call readc ;获得字母 mov bl,al ;将输入的内容存储到bl中 call dispcrlf cmp al,'a' ;判断输入合法性 jb returnb ;如果比‘a’小,则跳转到returnb标识符 cmp al,'z' ja returnb ;如果比‘z’大,则跳转到returnb标识符 call dispc ;显示字母 mov eax,offset m_outputs call dispmsg ;提示输出相应的大写字母 sub bl,20h ;实现小写到大写字母的转换 mov al,bl call dispc ;将转换的字母输出 call dispcrlf ;换行 jmp meau ;二进制向十六进制转换 cc: mov eax,offset m_input1 call dispmsg call readuid ;输入二进制数的位数 mov j,eax ;保存二进制位数 mov eax,offset m_input11 ;提示输入二进制数 call dispmsg call dispcrlf mov ecx,0 ;清零,计数器 c1: call readuid mov array1[ecx],al ;一位一位的输入 inc ecx cmp ecx,j jb c1 ;低于位数,继续输入 mov ecx,j dec ecx mov eax,1 xor ebx,ebx ;记录移动的位数 xor edx,edx ;表示四个二进制位的和 xor esi,esi ;保存十六进制当前的位置 c2: mov n,0 ;n作为二进制位数是否已达4位的一个标志 mov k,0 ;k作为数值是否已经结束的一个标志 cmp array1[ecx],1 jnz c11 ;判断二进制数的某一位是否为1 mov eax,1 cmp ebx,1 jnz c3 ;判断数据所在的位数,不相等,转向c3 shl eax,1 ;逻辑左移 jmp c5 c3: cmp ebx,2 jnz c4 ;根据比较来确定移动的位数 shl eax,2 ;逻辑左移 jmp c5 c4: cmp ebx,3 jnz c5 ;根据比较来判断移动的位数 shl eax,3 ;逻辑左移 c5: add edx,eax ;保存和 c11: cmp ebx,3 ;判断二进制数是否已经有四位 jnz c12 mov n,1 c12: cmp ecx,0 ;判断数值是否已经全部计算完毕 jnz c13 mov k,1 c13: mov edi,n or edi,k ;保存n或者k的值 cmp edi,1 jnz c16 cmp edx,9 jna c14 sub edx,10 ;edx大于9 add edx,'A' ;转换成相应的字母 mov array2[esi],dl ;将十六进制数保存至数组 jmp c15 c14: add edx,'0' mov array2[esi],dl ;edx大于等于0小于等于9 c15: inc esi ;改变当前十六进制数所在位置 xor edx,edx ;清零以便下一次运用 mov ebx,-1 c16: inc ebx dec ecx cmp ecx,0 jnl c2 ;小于0,退出循环 mov eax,offset m_output1 call dispmsg mov ecx,esi ;16进制数的位数 dec ecx ccc: mov al,array2[ecx] call dispc ;输出每一个十六进制数 dec ecx cmp ecx,0 ;输出转换后的数据 jnl ccc call dispcrlf jmp meau ;返回主菜单 ;十六进制向二进制的转换 d: mov eax,20 push eax ;将20作为一个判断标识 mov eax,sum ;将十进制数存入eax中 jmp d1 d1: mov edx,0 mov ebx,2 ;除数2 div ebx mov ecx,eax ;保存商 mov eax,edx push eax ;将余数压入栈 mov eax,ecx cmp eax,0 ;判断商是否为0 jz d2 jmp d1 d2: mov ecx,eax ;暂存 mov eax,offset m_output2 call dispmsg mov eax,ecx jmp d3 d3: pop eax ;出栈 cmp eax,20 jz d4 ;判断是否出栈完毕 call dispsid jmp d3 d4: call dispcrlf jmp meau ;返回主菜单 ;十六进制向十进制的转换 e: mov m,al mov eax,offset m_input3 call dispmsg mov eax,offset array call readmsg mov len,al ;获得字符串长度 xor ecx,ecx ;异或清零 mov cl,len ;计数 dec cl ;自减1 xor eax,eax mov edx,1 ;初始权值 again: cmp array[ecx],'A' jl shiliu_shi1 ;小于A,转向shiliu_shi1 cmp array[ecx],'F' jg shiliu_shi1 ;大于Z,转向shiliu_shi1 xor ebx,ebx mov bl,array[ecx] ;相对寻址 sub bl,55 ;转换成相应的数字 imul ebx,edx add eax,ebx imul edx,16 ;改变权值 jmp shiliu_shi3 shiliu_shi1: cmp array[ecx],'0' jl shiliu_shi2 ;小于‘0’,转向shiliu_shi2 cmp array[ecx],'9' jg shiliu_shi2 ;大于‘9’,转向shiliu_shi2 xor ebx,ebx ;临时寄存 mov bl,array[ecx] sub bl,'0' ;转换成相应的数字 imul ebx,edx add eax,ebx imul edx,16 ;改变权值 jmp shiliu_shi3 shiliu_shi2: mov eax,offset m_err call dispmsg ;提示输入错误 jmp e shiliu_shi3: dec ecx ;自减 cmp ecx,0 jnl again ;不小于0,转向again mov sum,eax cmp m,'d' ;判断选择的功能 jz d ;为d,继续进行转换成二进制 cmp m,'e' jz ee ;为e,直接输出 ee: mov eax,offset m_output3 call dispmsg mov eax,sum ;数据输出 call dispuid call dispcrlf jmp meau ;返回主菜单 q: jmp done ;退出 done: exit 0 end start

紧急求各位大神帮帮弄下汇编语言的

DATAS SEGMENT BUFFER DB 20 DUP(0) BUFFER1 DB 20 DUP(0) MSG1 DB "Please input you want choose number: $" MSG2 DB "1: eg:A to a exchange : Uppercase to lowercase $" MSG3 DB "2: eg:a to A exchange : Lowercase to Uppercase $" MSG4 DB "3: eg:1111 to f : Binary to Hexadecimal $" MSG5 DB "4: eg:f to 1111 : Hexadecimal to Binary $" MSG6 DB "5: eg:f to 15 : Hexadecimal to Decimal $" MSG7 DB "PLEASE INPUT SOME ALPHABET:$" MSG8 DB "PLEASE INPUT SOME BINARY NUMBER:$" MSG9 DB "PLEASE INPUT SOME HEX NUMBER:$" DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX P: CALL MENU ;子程序调用 CMP AL,'1' JZ A ; 若 AL=1,则转到A CMP AL,'2' JZ B ; 若AL=2,则转到B CMP AL,'3' JZ CA CMP AL,'4' JNZ LO JMP D LO: CMP AL,'5' JNZ EXIT1 JMP asd EXIT1:JMP EXIT A: CALL CLEAR ;子程序调用 MOV AH,02 ;设置光标位置 MOV DH,3 MOV DL,2 INT 10H ;中断指令 MOV SI,OFFSET MSG7 ;取MSG7的地址指针送入SI MOV DX,SI MOV AH,09 ;;显示一个字符串 INT 21H LEA SI,BUFFER ;取BUFFER的有效地址给SI S: MOV AH,01 ;;输入一个字符 INT 21H MOV [SI],AL INC SI CMP AL,0DH ;;回车 JNZ S ; ;若不输入回车,则继续执行S CALL CRLF MOV AH,02 ; ;设置光标位置 MOV DH,5 MOV DL,28 INT 10H LEA SI,BUFFER Q: MOV AL,[SI] CMP AL,'a' JNB E ; ;若AL的内容低于‘A’则转到E ADD AL,20H ; ;AL加上20H,大写字母转换为小写字母 E: MOV DL,AL MOV AH,02 ; ;显示一个字符 INT 21H INC SI MOV AL,[SI] CMP AL,0DH JNZ Q ; ;若不输入回车的话,则继续执行Q MOV AH,01 INT 21H CMP AL,0DH JZ P ; ;若输入回车,则返回P JMP EXIT B: CALL CLEAR ;调用子程序 MOV AH,02 MOV DH,3 MOV DL,2 INT 10H MOV SI,OFFSET MSG7 MOV DX,SI MOV AH,09 ; ;显示一个字符串 INT 21H LEA SI,BUFFER M: MOV AH,01 INT 21H MOV [SI],AL INC SI CMP AL,0DH JNZ M ; ;若不输入回车,则继续执行M CALL CRLF MOV AH,02 ; ;设置光标位置 MOV DH,5 MOV DL,28 INT 10H LEA SI,BUFFER I: MOV AL,[SI] CMP AL,5AH JNGE X ; ;若AL的内容低于‘Z’,则转到X SUB AL,20H ; ;小写字母转换为大写字母 X: MOV DL,AL MOV AH,02 INT 21H INC SI MOV AL,[SI] CMP AL,0DH JNZ I MOV AH,01 ; ;输入一个字符 INT 21H CMP AL,0DH JNZ EXIT0 ; ;若不输入回车,则转到EXIT0出 JMP P EXIT0:JMP EXIT CA: CALL CLEAR MOV AH,02 ;;设置光标位置 MOV DH,3 MOV DL,2 INT 10H MOV SI,OFFSET MSG8 MOV DX,SI MOV AH,09 INT 21H LEA SI,BUFFER NAA: MOV AH,01 INT 21H MOV [SI],AL INC SI CMP AL,0DH JNZ NAA CALL CRLF LEA DI,BUFFER MOV AH,02 MOV DH,5 MOV DL,28 INT 10H Y: MOV AL,[DI] SUB AL,30H ;;将ASCII码转换为二进制 MOV BL,8D MUL BL ADD AL,30H MOV DL,0 ADD DL,AL INC DI MOV AL,[DI] SUB AL,30H MOV BL, 4D MUL BL ADD DL,AL INC DI MOV AL,[DI] SUB AL,30H MOV BL,2D MUL BL ADD DL,AL INC DI MOV AL,[DI] SUB AL,30H MOV BL,1D MUL BL ADD DL,AL CMP DL,'9' JNG T ADD DL,'A'-':' T: MOV AH,02 INT 21H INC DI MOV AL,[DI] CMP AL,0DH JNZ Y MOV AH,01 INT 21H CMP AL,0DH JNZ EXIT JMP P D: CALL CLEAR MOV AH,02 MOV DH,3 MOV DL,2 INT 10H MOV SI,OFFSET MSG9 MOV DX,SI MOV AH,09 INT 21H LEA SI,BUFFER asd: CALL CLEAR MOV AH,02 MOV DH,3 MOV DL,2 INT 10H MOV SI,OFFSET MSG9 MOV DX,SI ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MOV AH,09 INT 21H LEA SI,BUFFER FF: MOV AH,01 INT 21H MOV [SI],AL INC SI CMP AL,0DH JNZ FF CALL CRLF LEA SI,BUFFER MOV DI,OFFSET BUFFER1 RE: MOV AL,[SI] CMP AL,'9' JNG Z SUB AL,'A'-':' Z: SUB AL,30H MOV CX,4 ADD DI,4 YU: CBW MOV BL,2D DIV BL MOV [DI],AH PUSH AX ADD AH,30H ; ; 二进制转化为ASCII码 POP AX DEC DI LOOP YU ADD DI,4 INC SI MOV AL,[SI] CMP AL,0DH JNZ RE INC DI MOV AL,'$' MOV [DI],AL CALL CRLF MOV SI,OFFSET BUFFER1+1 MOV AL,[SI] RT: ADD AL,30H MOV DL,AL MOV AH,02 INT 21H INC SI MOV AL,[SI] CMP AL,'$' JNZ RT MOV AH,01 INT 21H CMP AL,0DH JNZ EXIT JMP P EXIT: MOV AH,4CH INT 21H ;返回DOS系统 MENU PROC NEAR CALL CLEAR ;调用子程序 MOV AH,02 ;设置光标位置 MOV DH,5 ;第5行 MOV DL,25 ;第25列 INT 10H LEA SI,MSG2 MOV DX,SI MOV AH,09 ;显示MSG2的内容 INT 21H ;输出MSG2字符串 MOV AH,02 ;至光标位置 MOV DH,7 ;第7行 MOV DL,25 ;第25列 INT 10H LEA SI,MSG3 ;取MSG3的有效地址 MOV DX,SI MOV AH,09 INT 21H ;输出MSG3字符串 MOV AH,02 MOV DH,9 ;第9行 MOV DL,25 ;第25列 INT 10H LEA SI,MSG4 ;取MSG4的有效地址 MOV DX,SI MOV AH,09 INT 21H ;输出MSG4字符串 MOV AH,02 MOV DH,11 ;第11行 MOV DL,25 ;第25列 INT 10H LEA SI,MSG5 MOV DX,SI MOV AH,09 INT 21H ;输出MSG5字符串 MOV AH,02 ;至光标位置 MOV DH,13 ;第15列 MOV DL,25 ;第17列 INT 10H LEA SI,MSG6 MOV DX,SI MOV AH,09 INT 21H ;输出MSG6字符串 MOV AH,02 ;至光标位置 MOV DH,19 ;第19列 MOV DL,25 ;第25列 INT 10H LEA SI,MSG1 MOV DX,SI MOV AH,09 INT 21H ;输出MSG1字符串 MOV AH,01 ;键盘输入 INT 21H RET ;返回 MENU ENDP CLEAR PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV AH,07 ;屏幕初始化或下卷 MOV AL,25 ;下卷行数 MOV BH,70H ;卷入行属性 MOV CH,0 ;左上角行号 MOV CL,0 ;左上角列号 MOV DH,24 ;右下角行号 MOV DL,79 ;右下角列号 INT 10H POP DI POP SI POP DX POP CX POP BX POP AX RET CLEAR ENDP CRLF PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV DL,0DH ;输出回车 MOV AH,02 INT 21H MOV DL,0AH ;输出换行 MOV AH,02 INT 21H POP DI POP SI POP DX POP CX POP BX POP AX RET CRLF ENDP CODES ENDS ;代码段结束 END START ;程序结束

关于KEIL5.23 C文件中加入汇编报错的问题,求大神帮忙解答一下

在移植FreeRTOS的时候出现报错,port.c文件中出现了关于asm的语法错误,试了半天也没解决,原版的程序在keil4上应该是没问题的,在keil5上就报错! ![图片说明](https://img-ask.csdn.net/upload/201807/12/1531384091_744718.png)

汇编语言安装软件时出现问题了,求大神解决啊

请问大家,安装masm出现DELETE operation of EXE file has failed是什么原因,![图片](https://img-ask.csdn.net/upload/201511/11/1447251626_620414.jpg)![图片](https://img-ask.csdn.net/upload/201511/11/1447251667_543149.jpg)

汇编语言 求大神看下下面的代码

将八位二进制数显示在屏幕上 为什么一直是00000000?不应该是00001000吗 DATA SEGMENT USE16 BUF DB 255 DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG:MOV AX,DATA MOV DS,AX MOV DH,08H DISP:MOV CX,8 LAST:MOV DL,'0' RCL DH,1 JNC CON MOV DL,'1' CON:MOV AH,02H INT 21H LOOP LAST MOV AH,4CH INT 21H CODE ENDS END BEG

2道简单的汇编习题,求代码。

熟悉Windows编程环境: ⑴ 编写一个Windows界面汇编程序,显示一个带Yes,No选择按钮的消息框,标题显示为:自己的姓名;正文内容显示为:学号;选择Yes的返回:“你选择的是Yes”,选择No的返回:“你选择的是No”。 (2)编写一个Windows 32位控制台程序,要求从键盘输入5个十六进制数,输出该数所对应的二进制数中所包含“0”的个数。)

求教汇编引导程序大神

请问一般这样的引导程序 是什么汇编? 为什么没有伪指令?也不能编译?请问直接jmp那是干什么? 还有nasm 又是什么呢? 重要在U盘上面是这怎么变成引导的程序? 简单的引导程序 jmp dword 0x07c0:go ;第一种 go: org 07c00h ;第二种 mov ax,cs mov es,ax mov bp,msgstr mov cx,13 mov dh,12 mov dl,33 mov bh,0 mov al,1 mov bl,0ch mov ah,13h int 10h msgstr: db "welcome i os!" times 510-($-$$) db 0 dw AA55h jmp $ 请教请教。谢谢大神们!!!!

求大神帮帮添加一个十六进制转十进制的功能在number 5这个地方汇编语言

DATAS SEGMENT BUFFER DB 20 DUP(0) BUFFER1 DB 20 DUP(0) MSG1 DB "Please input you want choose number: $" MSG2 DB "1: eg:A to a exchange : Uppercase to lowercase $" MSG3 DB "2: eg:a to A exchange : Lowercase to Uppercase $" MSG4 DB "3: eg:1111 to f : Binary to Hexadecimal $" MSG5 DB "4: eg:f to 1111 : Hexadecimal to Binary $" MSG6 DB "5: eg:f to 15 : Hexadecimal to Decimal $" MSG7 DB "PLEASE INPUT SOME ALPHABET:$" MSG8 DB "PLEASE INPUT SOME BINARY NUMBER:$" MSG9 DB "PLEASE INPUT SOME HEX NUMBER:$" DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX P: CALL MENU ;子程序调用 CMP AL,'1' JZ A ; 若 AL=1,则转到A CMP AL,'2' JZ B ; 若AL=2,则转到B CMP AL,'3' JZ CA CMP AL,'4' JNZ LO JMP D LO: CMP AL,'5' JNZ EXIT1 JMP asd EXIT1:JMP EXIT A: CALL CLEAR ;子程序调用 MOV AH,02 ;设置光标位置 MOV DH,3 MOV DL,2 INT 10H ;中断指令 MOV SI,OFFSET MSG7 ;取MSG7的地址指针送入SI MOV DX,SI MOV AH,09 ;;显示一个字符串 INT 21H LEA SI,BUFFER ;取BUFFER的有效地址给SI S: MOV AH,01 ;;输入一个字符 INT 21H MOV [SI],AL INC SI CMP AL,0DH ;;回车 JNZ S ; ;若不输入回车,则继续执行S CALL CRLF MOV AH,02 ; ;设置光标位置 MOV DH,5 MOV DL,28 INT 10H LEA SI,BUFFER Q: MOV AL,[SI] CMP AL,'a' JNB E ; ;若AL的内容低于‘A’则转到E ADD AL,20H ; ;AL加上20H,大写字母转换为小写字母 E: MOV DL,AL MOV AH,02 ; ;显示一个字符 INT 21H INC SI MOV AL,[SI] CMP AL,0DH JNZ Q ; ;若不输入回车的话,则继续执行Q MOV AH,01 INT 21H CMP AL,0DH JZ P ; ;若输入回车,则返回P JMP EXIT R: MOV AX,47EH MOV CX,0 MOV BX,10 DISP1: MOV DX,0 DIV BX PUSH DX INC CX OR AX,AX JNE DISP1 DISP2: MOV AH,2 POP DX ADD DL,30H INT 21H LOOP DISP2 B: CALL CLEAR ;调用子程序 MOV AH,02 MOV DH,3 MOV DL,2 INT 10H MOV SI,OFFSET MSG7 MOV DX,SI MOV AH,09 ; ;显示一个字符串 INT 21H LEA SI,BUFFER M: MOV AH,01 INT 21H MOV [SI],AL INC SI CMP AL,0DH JNZ M ; ;若不输入回车,则继续执行M CALL CRLF MOV AH,02 ; ;设置光标位置 MOV DH,5 MOV DL,28 INT 10H LEA SI,BUFFER I: MOV AL,[SI] CMP AL,5AH JNGE X ; ;若AL的内容低于‘Z’,则转到X SUB AL,20H ; ;小写字母转换为大写字母 X: MOV DL,AL MOV AH,02 INT 21H INC SI MOV AL,[SI] CMP AL,0DH JNZ I MOV AH,01 ; ;输入一个字符 INT 21H CMP AL,0DH JNZ EXIT0 ; ;若不输入回车,则转到EXIT0出 JMP P EXIT0:JMP EXIT CA: CALL CLEAR MOV AH,02 ;;设置光标位置 MOV DH,3 MOV DL,2 INT 10H MOV SI,OFFSET MSG8 MOV DX,SI MOV AH,09 INT 21H LEA SI,BUFFER NAA: MOV AH,01 INT 21H MOV [SI],AL INC SI CMP AL,0DH JNZ NAA CALL CRLF LEA DI,BUFFER MOV AH,02 MOV DH,5 MOV DL,28 INT 10H Y: MOV AL,[DI] SUB AL,30H ;;将ASCII码转换为二进制 MOV BL,8D MUL BL ADD AL,30H MOV DL,0 ADD DL,AL INC DI MOV AL,[DI] SUB AL,30H MOV BL, 4D MUL BL ADD DL,AL INC DI MOV AL,[DI] SUB AL,30H MOV BL,2D MUL BL ADD DL,AL INC DI MOV AL,[DI] SUB AL,30H MOV BL,1D MUL BL ADD DL,AL CMP DL,'9' JNG T ADD DL,'A'-':' T: MOV AH,02 INT 21H INC DI MOV AL,[DI] CMP AL,0DH JNZ Y MOV AH,01 INT 21H CMP AL,0DH JNZ EXIT JMP P D: CALL CLEAR MOV AH,02 MOV DH,3 MOV DL,2 INT 10H MOV SI,OFFSET MSG9 MOV DX,SI MOV AH,09 INT 21H LEA SI,BUFFER asd: CALL CLEAR;;;;;;;;;;;;;;;;;;;;number5这个地方 MOV AH,02 MOV DH,3 MOV DL,2 INT 10H MOV SI,OFFSET MSG9 MOV DX,SI MOV AH,09 INT 21H LEA SI,BUFFER FF: MOV AH,01 INT 21H MOV [SI],AL INC SI CMP AL,0DH JNZ FF CALL CRLF LEA SI,BUFFER MOV DI,OFFSET BUFFER1 RE: MOV AL,[SI] CMP AL,'9' JNG Z SUB AL,'A'-':' Z: SUB AL,30H MOV CX,4 ADD DI,4 YU: CBW MOV BL,2D DIV BL MOV [DI],AH PUSH AX ADD AH,30H ; ; 二进制转化为ASCII码 POP AX DEC DI LOOP YU ADD DI,4 INC SI MOV AL,[SI] CMP AL,0DH JNZ RE INC DI MOV AL,'$' MOV [DI],AL CALL CRLF MOV SI,OFFSET BUFFER1+1 MOV AL,[SI] RT: ADD AL,30H MOV DL,AL MOV AH,02 INT 21H INC SI MOV AL,[SI] CMP AL,'$' JNZ RT MOV AH,01 INT 21H CMP AL,0DH JNZ EXIT JMP P EXIT: MOV AH,4CH INT 21H ;返回DOS系统 MENU PROC NEAR CALL CLEAR ;调用子程序 MOV AH,02 ;设置光标位置 MOV DH,5 ;第5行 MOV DL,25 ;第25列 INT 10H LEA SI,MSG2 MOV DX,SI MOV AH,09 ;显示MSG2的内容 INT 21H ;输出MSG2字符串 MOV AH,02 ;至光标位置 MOV DH,7 ;第7行 MOV DL,25 ;第25列 INT 10H LEA SI,MSG3 ;取MSG3的有效地址 MOV DX,SI MOV AH,09 INT 21H ;输出MSG3字符串 MOV AH,02 MOV DH,9 ;第9行 MOV DL,25 ;第25列 INT 10H LEA SI,MSG4 ;取MSG4的有效地址 MOV DX,SI MOV AH,09 INT 21H ;输出MSG4字符串 MOV AH,02 MOV DH,11 ;第11行 MOV DL,25 ;第25列 INT 10H LEA SI,MSG5 MOV DX,SI MOV AH,09 INT 21H ;输出MSG5字符串 MOV AH,02 ;至光标位置 MOV DH,13 ;第15列 MOV DL,25 ;第17列 INT 10H LEA SI,MSG6 MOV DX,SI MOV AH,09 INT 21H ;输出MSG6字符串 MOV AH,02 ;至光标位置 MOV DH,19 ;第19列 MOV DL,25 ;第25列 INT 10H LEA SI,MSG1 MOV DX,SI MOV AH,09 INT 21H ;输出MSG1字符串 MOV AH,01 ;键盘输入 INT 21H RET ;返回 MENU ENDP CLEAR PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV AH,07 ;屏幕初始化或下卷 MOV AL,25 ;下卷行数 MOV BH,70H ;卷入行属性 MOV CH,0 ;左上角行号 MOV CL,0 ;左上角列号 MOV DH,24 ;右下角行号 MOV DL,79 ;右下角列号 INT 10H POP DI POP SI POP DX POP CX POP BX POP AX RET CLEAR ENDP CRLF PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV DL,0DH ;输出回车 MOV AH,02 INT 21H MOV DL,0AH ;输出换行 MOV AH,02 INT 21H POP DI POP SI POP DX POP CX POP BX POP AX RET CRLF ENDP CODES ENDS ;代码段结束 END START ;程序结束

学汇编的时候有一个ASCII码的问题不懂,求大神指教一番

将ASCII码'AB'在内存中的字内容BA(4241H)送AX 这句话是什么意思啊,,求大神指教

救急!求大神这段C语言改写成汇编

#include <stdio.h> #include <stdlib.h> #include <bios.h> #include <io.h> #define PageUp 0x4900 #define PageDown 0x5100 #define Home 0x4700 #define End 0x4F00 #define Esc 0x011B void char2hex(char xx, char s[]) /* 把8位数转化成16进制格式 */ { char t[] = "0123456789ABCDEF"; s[0] = t[(xx >> 4) & 0x0F]; /* 高4位 */ s[1] = t[xx & 0x0F]; /* 低4位 */ } void long2hex(long offset, char s[]) /* 把32位数转化成16进制格式 */ { int i; char xx; for(i=0; i<4; i++) { offset = _lrotl(offset, 8); /* 循环左移8位, 把高8位移到低8位 */ xx = offset & 0xFF; /* 高24位置0, 保留低8位 */ char2hex(xx, &s[i*2]); /* 把8位数转化成16进制格式 */ } } void show_this_row(int row, long offset, char buf[], int bytes_on_row) { /* 显示当前一行: 行号 偏移 数组首地址 当前行字节数 */ char far *vp = (char far *)0xB8000000; char s[]= "00000000: xx xx xx xx|xx xx xx xx|xx xx xx xx|xx xx xx xx ................"; /* | | | | | | 00 10 59 上述3个数字是竖线对应位置元素的下标; 数组s的内容就是每行的输出格式: 其中左侧8个0表示当前偏移地址; 其中xx代表16进制格式的一个字节; 其中s[59]开始共16个点代表数组buf各个元素对应的ASCII字符。 */ char pattern[] = "00000000: | | | "; int i; strcpy(s, pattern); long2hex(offset, s); /* 把32位偏移地址转化成16进制格式填入s左侧8个'0'处 */ for(i=0; i<bytes_on_row; i++) /* 把buf中各个字节转化成16进制格式填入s中的xx处 */ { char2hex(buf[i], s+10+i*3); } for(i=0; i<bytes_on_row; i++) /* 把buf中各个字节填入s右侧小数点处 */ { s[59+i] = buf[i]; } vp = vp + row*80*2; /* 计算row行对应的视频地址 */ for(i=0; i<sizeof(s)-1; i++) /* 输出s */ { vp[i*2] = s[i]; if(i<59 && s[i] == '|') /* 把竖线的前景色设为高亮度白色 */ vp[i*2+1] = 0x0F; else /* 其它字符的前景色设为白色 */ vp[i*2+1] = 0x07; } } void clear_this_page(void) /* 清除屏幕0~15行 */ { char far *vp = (char far *)0xB8000000; int i, j; for(i=0; i<16; i++) /* 汇编中可以使用rep stosw填入80*16个0020h */ { for(j=0; j<80; j++) { *(vp+(i*80+j)*2) = ' '; *(vp+(i*80+j)*2+1) = 0; } } } void show_this_page(char buf[], long offset, int bytes_in_buf) { /* 显示当前页: 数组首地址 偏移 当前页字节数 */ int i, rows, bytes_on_row; clear_this_page(); rows = (bytes_in_buf + 15) / 16; /* 计算当前页的行数 */ for(i=0; i< rows; i++) { bytes_on_row = (i == rows-1) ? (bytes_in_buf - i*16) : 16; /* 当前行的字节数 */ show_this_row(i, offset+i*16, &buf[i*16], bytes_on_row); /* 显示这一行 */ } } main() { char filename[100]; char buf[256]; int handle, key, bytes_in_buf; long file_size, offset, n; puts("Please input filename:"); gets(filename); /* 输入文件名; 汇编中可以调用int 21h的0Ah功能 */ handle = _open(filename, 0); /* 打开文件, 返回句柄; 汇编对应调用: mov ah, 3Dh mov al, 0; 对应_open()的第2个参数, 表示只读方式 mov dx, offset filename int 21h mov handle, ax */ if(handle == -1) { puts("Cannot open file!"); exit(0); /* 汇编对应调用: mov ah, 4Ch mov al, 0; 对应exit()中的参数 int 21h */ } file_size = lseek(handle, 0, 2); /* 移动文件指针; 汇编对应调用: mov ah, 42h mov al, 2; 对应lseek()的第3个参数, ; 表示以EOF为参照点进行移动 mov bx, handle mov cx, 0; \ 对应lseek()的第2个参数 mov dx, 0; / int 21h mov word ptr file_size[2], dx mov word ptr file_size[0], ax */ offset = 0; do { n = file_size - offset; if(n >= 256) bytes_in_buf = 256; else bytes_in_buf = n; lseek(handle, offset, 0); /* 移动文件指针; 汇编对应调用: mov ah, 42h mov al, 0; 对应lseek()的第3个参数, ; 表示以偏移0作为参照点进行移动 mov bx, handle mov cx, word ptr offset[2]; \cx:dx合一起构成 mov dx, word ptr offset[0]; /32位值=offset int 21h */ _read(handle, buf, bytes_in_buf); /* 读取文件中的bytes_in_buf个字节到buf中 汇编对应调用: mov ah, 3Fh mov bx, handle mov cx, bytes_in_buf mov dx, data mov ds, dx mov dx, offset buf int 21h */ show_this_page(buf, offset, bytes_in_buf); key = bioskey(0); /* 键盘输入; 汇编对应调用: mov ah, 0 int 16h */ switch(key) { case PageUp: offset = offset - 256; if(offset < 0) offset = 0; break; case PageDown: if(offset + 256 < file_size) offset = offset + 256; break; case Home: offset = 0; break; case End: offset = file_size - file_size % 256; if(offset == file_size) offset = file_size - 256; break; } } while(key != Esc); _close(handle); /* 关闭文件; 汇编对应调用: mov ah, 3Eh mov bx, handle int 21h */ }

求密码登录及修改汇编程序

求一个8086汇编的密码登录及密码修改的汇编程序。求大神。具体:先与原来缓冲区的密码比较,如果正确则登录成功,如果错误,则跳到修改密码页面,然后输入新密码,再确认新密码,如果正确,则修改成功,如果错误则重新输入新密码

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

ArrayList源码分析(入门篇)

ArrayList源码分析 前言: 写这篇博客的主要原因是,在我上一次参加千牵科技Java实习生面试时,有被面试官问到ArrayList为什么查找的速度较快,插入和删除的速度较慢?当时我回答得不好,很大的一部分原因是因为我没有阅读过ArrayList源码,虽然最后收到Offer了,但我拒绝了,打算寒假学得再深入些再广泛些,下学期开学后再去投递其他更好的公司。为了更加深入理解ArrayList,也为

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

玩转springboot启动banner定义所得

最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。 这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目: 还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈! 于是出于最初的好奇,研究了项目的源代码。看到

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

立即提问
相关内容推荐