汇编语言8086指令系统的in指令

in al,dx
in ax,dx
以上两种格式是否有问题,dx怎么能传给al呢,求大神讲解一下内部传递的详细过程

1个回答

使用寄存器的时候是间接寻址,参考:http://bbchylml1988.blog.51cto.com/1456746/319885

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
汇编语言指令的区别。。

汇编语言中指令es:[di] 与指令byte ptr ds:[si]都是表示的是什么?二者有什么区别。

关于汇编指令jmp的问题

本人初学汇编语言,所用教材为汇编语言第3版(清华大学王爽著)。发现win8.1没有debug功能,无奈只好去下了个DOSBox将就着用。学了-r -d -a -u -e指令都没问题,就是在jmp的这条指令下被卡住了。书上写的是jmp 段地址:偏移地址重新改写CS:IP或者jmp 【】只修改IP的值。可在我上机实践的时候发现上述两种用法被提示错误。如图: ![图片说明](https://img-ask.csdn.net/upload/201501/28/1422421914_119929.png) 不知是哪出了问题了,我已经用过几种搜索引擎均不见成效,朋友们求帮忙呗 小弟感激不尽!

汇编语言jnz指令调用时出现jump out of range问题,怎么解决?

汇编程序调用jnz指令时出现了jump out of range 的问题,改之前是这样 ``` jnz bj1 jnz loop1 ``` 百度了解决方法之后我在代码中间加上了 ``` bj10:jmp bj1 loop10:jmp loop1 ``` 但是程序运行结果出现了乱码,怎么改呢?求大佬指点! 源代码如下,是对学生成绩进行排序显示是从网上下载下来学习的,侵删 ``` DATAS SEGMENT mess0 db 0ah,0dh,'num name score xuehao$' ; mess1 db 0ah,0dh,'input name :$' mess2 db 0ah,0dh,'input score:$' mess3 db 0ah,0dh,'input xuehao:$' mess4 db 'xueshengchengjipaixu$' p equ 3;输入的人数 buff1 db 10,?,10 dup(0);姓名缓冲区,加$符号以便输出时使用 buff2 db 3,?,3 dup(0);成绩缓冲区 buff3 db 4,?,4 dup(?) sname db p dup(10 dup(0));保存姓名 score db p dup(3 dup(0));保存成绩 xuehao db p dup(4 dup(0)) sing1 dw 0 sing2 dw 0 sing3 dw 0 count db '1';计数 ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS hong1 macro ;定义回车换行的宏 mov dl,0ah mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h endm hong2 macro opr1,opr2 ;定义输入输出 lea dx,opr1 mov ah,opr2 int 21h endm hong3 macro ;定义空格 mov dl,20h mov ah,2 int 21h endm hong4 macro opr1,opr2 ;清楚缓存区里的回车键 mov al,opr1 add al,2 mov ah,0 mov si,ax mov opr2,0 endm hong5 macro opr1,opr2,opr3,opr4 ;传送姓名 mov cx,opr1 lea si,opr2 lea di,opr3 add di,opr4 cld rep movsb mov cx,opr1 mov ax,0 lea di,opr3 endm START: MOV AX,DATAS MOV DS,AX mov es,ax mov bx,0; mov cx,0 hong2 mess4,9 hong1 call input;调用子程序1 call bijiao call print mov ah,4ch int 21h ;子程序1,输入姓名、成绩,学号 input proc inc bx;输入次数统计 cmp bx,p;输入次数>p? ja exit hong2 mess1,9 ;宏调用提示和输入姓名 lea dx,buff1;显示提示1 mov ah,10 int 21h mov al,buff1+1;实际输入个数放入AL add al,2;+2,包含buff1的0,1单元号 mov ah,0 mov si,ax;回车0d所在位置,跟在最后一个字符后 mov buff1[si],0;将0d换为0,便于输出显示 hong2 mess2,9 ;宏调用提示和输入分数 hong2 buff2,10 hong4 buff2+1,buff2[si] ;宏调用清空回车键 hong2 mess3,9 ;宏调用提示和输入学号 hong2 buff3,10 hong4 buff3+1,buff3[si] ;宏调用清空回车键 cmp bx,1 jz let5 add sing1,10 add sing2,3 add sing3,4 let5:call zhuancun jmp input exit: ret input endp ;转存子程序 zhuancun proc mov cx,10 lea si,buff1+2 ;传送姓名 lea di,sname add di,sing1 cld rep movsb mov cx,10 ;将缓存区清空 mov ax,0 lea di,buff1+2 rep stosb hong5 3,buff2+2,score,sing2 hong5 4,buff3+2,xuehao,sing3 ret zhuancun endp ;比较子程序 bijiao proc mov cx,p loop1:push cx ;保存外循环 mov di,0 mov si,0 mov bx,0 mov cx,p-1 bj1:mov al,score[bx] ;比较十位 cmp al,score[bx+3] jle bj2 add bx,3 add si,10 add di,4 dec cx jnz bj1 jmp out1 bj2:jl bj3 ;比较个位 mov al,score[bx+1] cmp al,score[bx+4] jl bj3 add bx,3 add si,10 add di,4 dec cx jnz bj1 jmp out1 bj3:mov al,score[bx] ;进行交换两个数字的位置 xchg al,score[bx+3] mov score[bx],al mov al,score[bx+1] xchg al,score[bx+4] mov score[bx+1],al push si push cx mov cx,10 bj10:jmp bj1 loop10:jmp loop1 lp1: mov al,sname[si] xchg al,sname[si+10] mov sname[si],al inc si dec cx jnz lp1 push di mov cx,4 lp2: mov al,xuehao[di] xchg al,xuehao[di+4] mov xuehao[di],al inc di loop lp2 pop di pop cx pop si add si,10 add di,4 add bx,3 dec cx jnz bj10 out1:pop cx dec cx jnz loop10 ret bijiao endp ;输出子程序 print proc hong1 hong2 mess0,9 mov cx,p mov bx,0 mov si,0 mov di,0 rept1: ;输出名次 push cx hong1 mov dl,count mov ah,2 int 21h inc count mov cx,7 l1: hong3 loop l1 mov cx,10 let1: ;输出姓名 mov dl,sname[bx] mov ah,2 int 21h inc bx loop let1 hong3 mov cx,3 let2: ;输出分数 mov dl,score[si] mov ah,2 int 21h inc si loop let2 mov cx,5 l2: hong3 loop l2 mov cx,4 let3: ;输出名次 mov dl,xuehao[di] mov ah,2 int 21h inc di loop let3 hong1 pop cx loop rept1 ret print endp CODES ENDS END START ```

汇编语言输出字符串乱码??

DATA SEGMENT BUFFER DB 40,?,40 DUP(?) ;输入缓冲区 PRINT DB 'TO INPUT:','$' ;要输出提示信息 CRLF DB 0DH,0AH,'$' COUNT1 DB ? ;外层循环次数 COUNT2 DB ? ;内层循环次数 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR ;该过程为远程型.可以在段内被调用,也可以在段间被调用 MOV AX,DATA MOV DS,AX MOV AH, 9 ;输出一串提示信息 “mov ah,9 ”是调用int 21h 的功能号 LEA DX, PRINT ;lea 传送有效地址指令,把原操作数的有效地址送给指定的寄存器 INT 21H MOV AH, 0AH ;输入一串字符 LEA DX, BUFFER INT 21H MOV AH, 9 ;输出回车换行符,以使光标停在新行首 LEA DX, CRLF INT 21H MOV CL,BUFFER+1 ;取接收到的字符个数在cx中 XOR CH,CH MOV COUNT1,CL MOV COUNT2,CL DEC COUNT1 DEC COUNT2 LEA SI,BUFFER+2 ;将输入的第一个字符送给SI寄存器 LEA DI,BUFFER+2 ;将输入的第一个字符送给DI寄存器 LOOP1: INC SI MOV AL,[SI] MOV BL,[DI] CMP AL,BL ;对比第一个字符和后面的字符是否相等 JZ ACT1 ;若相等,执行ACT1 JMP LOOP4 ;循环 ACT1: MOV AL,0 ;将和前面字符相等的字符置为0 MOV [SI],AL JMP LOOP4 LOOP3: INC DI MOV COUNT2,CL DEC COUNT2 JMP LOOP1 LOOP4: DEC COUNT2 JNZ LOOP1 DEC COUNT1 JNZ LOOP3 LOOP7: MOV COUNT1,CL LOOP5: MOV AL,[SI] CMP AL,0 JE NO_CO JMP LOOP6 NO_CO: INC SI JMP LOOP8 LOOP6: MOV DL,[SI] MOV AH,2 INT 21H INC SI JMP LOOP8 LOOP8: DEC COUNT1 JNZ LOOP5 EXIT: MOV AX, 4C00H INT 21H MAIN ENDP CODE ENDS END MAIN

汇编语言排序和RET返回问题

ORG 0000h LJMP MAIN ORG 0003h MAIN: MOV 30H,#02h MOV 31H,#08h MOV 32H,#06H N EQU 03h MOV r0,#30H sort: MOV A,r0 MOV r1,A MOV r5,#N CLR F0 DEC r5 MOV A,@r1 LOOP: MOV r3,A INC r1 MOV A,r1 CLR C MOV A,@r1 SUBB A,r3 JNC LOOP1 SETB F0 MOV A,r3 XCH A,@r1 DEC r1 XCH A,@r1 INC r1 LOOP1: MOV A,@r1 DJNZ r5,LOOP JB F0,sort RET END 假设按递增顺序先排30H,31H,32H中的三个数,排完之后不是应该结束程序吗?为什么又返回sort了? 而且还有一个疑问:遇见RET是是返回子函数呢?还是返回主函数?为什么每次遇见RET都先返回子函数的第一条指令,再执行就回主函数,就是出不了程序了?

汇编语言实现学生成绩管理

设计实现一个学生成绩查询的程序。 1、实验背景 在以BUF为首址的字节数据存储区中,存放着n个学生的课程成绩表(百分制),每个学生的相关信息包括:姓名(占10个字节,结束符为数值0),语文成绩(1个字节),数学成绩(1个字节),英语成绩(1个字节),平均成绩(1个字节)。 例如: N EQU 1000 BUF DB ‘zhangsan’,0,0 ;学生姓名,不足10个字节的部分用0填充 DB 100, 85, 80,? ; 平均成绩还未计算 DB ‘lisi’,6 DUP(0) DB 80, 100, 70,? DB N-3 DUP( ‘TempValue’,0,80,90,95,?) ;除了3个已经具体定义了学生信息的成绩表以外,其他学生的信息暂时假定为一样的。 DB ‘wangwu’,0,0,0,0 DB 85, 85, 100, ? 2、功能一:提示并输入学生姓名 (1)使用9号DOS系统功能调用,提示用户输入学生姓名。 (2)使用10号DOS系统功能调用,输入学生姓名。输入的姓名字符串放在以in_name为首址的存储区中。 (3)若只是输入了回车,则回到“(1)”处重新提示与输入;若仅仅输入字符q,则程序退出,否则,准备进入下一步处理。 3、功能二:以学生姓名查询有无该学生 (1)使用循环程序结构,在成绩表中查找该学生。 (2)若未找到,就提示用户该学生不存在,并回到“功能一(1)”的位置,提示并重新输入姓名。 (3)若找到,则将该学生课程成绩表的起始偏移地址保存到POIN字变量中。 提示:字符串比较时,当采用输入串的长度作为循环次数时,若因循环次数减为0而终止循环,则还要去判断成绩表中名字串的下一个字符是否是结束符0,若是,才能确定找到了。 4、功能三:计算所有学生的平均成绩 使用算数运算相关指令计算并保存每一个学生的平均成绩。 平均成绩计算公式:(A*2+B+C/2)/3.5,即将语文成绩A乘以权重2、英语成绩C除以权重2后,与数学成绩B一起求和,再计算该生的平均成绩。要求避免溢出。 提示:使用循环程序结构,注意寻址方式的灵活使用。把小数3.5转换成分数后再运算避免使用浮点数指令。 5、功能四:将功能二查到的学生的平均成绩进行等级判断,并显示判断结果。 (1)平均成绩等级显示方式:若平均成绩大于等于90分,显示“A”;大于等于80分,显示“B”;大于等于70分,显示“C”;大于等于60分,显示“D”;小于60分,显示“F”。 提示:使用分支程序结构,采用2号DOS系统功能调用显示结果。 (2)使用转移指令回到“功能一(1)”处(提示并输入姓名)。 6、思考与选做功能 (1)对输入的姓名进行合法性检查,比如:是否存在大小写字母之外的字符,等等;若存在非法的输入情形,则提示之后重新输入。 (2)对BUF中预先定义的课程成绩表中的所有成绩项进行合法性检查,判断是否符合实际(如超过100分等),不符合则提示并退出程序。预先定义的学生姓名中,如果有重名如何处理? (3)除了显示平均成绩的等级外,还将平均成绩同时显示。 (4)由于有些课程体系中,成绩的满分可能会达到300分,此时,成绩项的定义必须采用字类型,那么,如何改造程序呢?采用数据结构来定义BUF存储区是否会更好?

8086汇编语言程序设计,关于CMP指令比较数字是否存在的问题

如何在数码管中显示0-FFFF中带0的数,一直循环,每秒状态切换。我目前的思路就是用cmp指令比较,要是没有0,就右移,循环四次,四次之后没有0的话,就跳到下一个数字继续循环比较。但是汇编的基础太差,求各位大神帮忙或者提出更好的方法。以下是我们现在存有的汇编程序 DATA SEGMENT ; DB 0 1 2 3 4 5 6 7 8 9 A B C D E F LEDCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV DX,0206H MOV AL,80H OUT DX,AL LEA BX,LEDCODE XOR SI,SI AGAIN: MOV DI,1 LP2: MOV AX,DI ; PORT B MOV DX,0202H OUT DX,AL MOV AX,SI AND AX,0FH XLAT MOV DX,0200H ; PORT A OUT DX,AL PUSH CX MOV CX,1000 LOOP $ POP CX MOV CL,4 ROR SI,CL ;SI RIGHT SHIFT 4 ROL DI,1 ; PBx CMP DI,16 JNE LP2 INC SI JMP AGAIN CODE ENDS END START

汇编AND指令取高4位?

## 考题: https://wenku.baidu.com/view/12431ed1195f312b3169a562.html 里的试题二 [问题二] ...... IN AL,DX ;读取 B 口数据 AND AL, () H ;取 AD574 数据的高 4 位, 十六进制表示 MOV BH,AL ........ 问题:取高4位,是0xF0还是0x0F。C语言里肯定是0xF0.不知道B口读出来有什么不同。 参考答案是0x0F 我觉得是0xF0 出入在哪里了?

atmel 汇编语言CPI的用法以及现代码的简化 新手问题可能有些沙雕还请见谅

现在的代码如下,俩个开关,分别按下或者同时按下或者不按会有不同的反应。 现在想要把三个开关状态的判断通过CPI使一个地址的数值逐渐变化并和开关的数值对比以判断开关现在的状态从而改变灯的模式 ldi r16 , 0xFF out DDRD , r16 JMP1: in r16 , PINB andi r16 , 0b11000000 brne PC+4 ldi r16 , 0XF0 out PORTD , r16 rjmp JMP1 JMP2: in r16 , PINB andi r16 , 0b01000000 brne PC+4 ldi r16 , 0XAA out PORTD , r16 rjmp JMP1 JMP3: in r16 , PINB andi r16 , 0b10000000 brne PC+4 ldi r16 , 0X55 out PORTD , r16 rjmp JMP1 ldi r16 , 0x0F out PORTD , r16 rjmp JMP1 感谢各位大佬

汇编语言键盘钢琴程序

DATA SEGMENT KEYS DB 'QWERTYU','ASDFGHJ','ZXCVBNM' FREQ DB 131,147,165,175,196,220,247 WELC DB 'Welcome to "Piano of Keyboard"',0DH,0AH,0DH,0AH,'$' EXPL DB 'Explanation:', 0DH,0AH,'Key:QWERTYU-Low Notes 1 2 3 4 5 6 7 ', 0DH,0AH,'Key:ASDFGHJ-Middle Notes 1 2 3 4 5 6 7 ',0DH,0AH,'Key:ZXCVBNM-High Notes 1 2 3 4 5 6 7 ', 0DH,0AH, 'Please Note Your Caps Lock Truned On', 0DH,0AH ESCQ DB 0DH,0AH,'Please play:',0DH,0AH,'(You can Type "ESC" to exit)', 0DH,0AH,0DH,0AH,'$' LAST DB 0DH,0AH,'Welcome again!','$' REMI DB 'Reminder:Please play the Key:"QWERTYU-ASDFGHJ-ZXCVBNM"', 0DH,0AH,'$' DATA ENDS CODE SEGMENT ASSUME CS:CODE DS:DATA START: MOV AX,DATA MOV DS,AX ;初始化数据区 LEA DX,WELC MOV AH,9 INT 21H ;显示提示语句 INPUT: MOV AH,7 INT 21H ;不回显输入键盘的KEY CMP AL,1BH ;判断输入KEY是否为“ESC” JZ EXIT ;若输入KEY为“ESC”则跳转到退出EXIT LEA DI,KEYS MOV CX,21 FIND: CMP AL,[DI] JZ SING ;找到KEY相对应的偏移地址DI则跳转至SING INC DI LOOP FIND ;根据输入KEY的ASCII码找到相对应的偏移地址 LEA DX,REMI MOV AH,9 INT 21H ;输入的KEY不正确,显示提醒请输入正确的KEY JMP INPUT ;不是正确的输入KEY,则跳转至INPUT SING: CALL FIFRE ;进入计算KEY所对应频率值的子程序 CALL SOUND ;进入根据频率值发出音调的子程序 JMP INPUT ;发声完毕后跳转至INPUT EXIT: LEA DX,LAST MOV AH,9 INT 21H ;显示退出时的字幕 MOV AX,4C00H INT 21H ;返回DOS FIFRE PROC ;计算KEY所对应频率值的子程序 MOV DL,1 ;标记频率基准值的倍数值 LEA BX,KEYS SUB DI,BX ;计算偏移地址相对与首地址的值 CMP DI,6 JNA SOU ;属于低音直接跳转至SOU SUB DI,7 ;属于中音,将偏移地址减7 ADD DL,1 ;标记倍数值加倍为2 CMP DI,6 JNA SOU ;属于中音,跳转至SOU SUB DI,7 ;属于高音,将偏移地址再减7 ADD DL,2 ;标记倍数值再加倍为4 SOU: MOV AX,DI ;将被换码给AL LEA BX,FREQ XLAT MUL DL ;频率基准值乘以倍数得到KEY所对应的频率值 MOV BX,AX RET FIFRE ENDP SOUND PROC ;根据频率值发出音调的子程序 MOV AL,0B6H OUT 43H,AL ;向8253的43H写入控制字 MOV DX,12H MOV AX,348CH DIV BX ;计算计数初值N OUT 42H,AL MOV AL,AH OUT 42H,AL ;向通道2端口42H写入计数初值N IN AL,61H OR AL,3 OUT 61H,AL ;打开扬声器 CALL DELAY ;进入延时子程序 IN AL,61H AND AL,0FCH OUT 61H,AL ;关闭扬声器 RET SOUND ENDP DELAY PROC ;延时时间子程序 PUSH BX PUSH CX MOV BX,4000 DY1: MOV CX,0FFFH DY0: LOOP DY0 DEC BX JNZ DY1 ;利用LOOP循环和跳转指令进行双循环 POP CX POP BX RET DELAY ENDP CODE ENDS END START 在DOSBOX里运行时无论按哪个键它都没办法弹![图片说明](https://img-ask.csdn.net/upload/201601/13/1452659977_585192.png) 一直重复显示着那句话!! 求助呀!

用汇编实现统计空格个数

用汇编实现输入一串字符串,统计其中空格、数字、大写字母、小写字母的个数。代码调试时没问题,但在DOS界面运行时输出乱码,求各位大神指导,哪里出错 DATA SEGMENT BUFFER DB 10,?,10 DUP(?) COUNT DB 4 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,10 INT 21H LEA BX,BUFFER+1 MOV CL,[BX] MOV CH,0 ONE: ADD BX,1 MOV AL,[BX] CMP AL,20H JNE L2 L1: INC COUNT[0] JMP TWO L2: CMP AL,39H JA L3 INC COUNT[1] JMP TWO L3: CMP AL,5AH JA L4 INC COUNT[2] JMP TWO L4: INC COUNT[3] TWO: LOOP ONE THREE: MOV CX,4 MOV SI,0 MOV AH,02H EXIT: MOV DL,0DH INT 21H MOV DL,0AH INT 21H MOV DL,COUNT[SI] ADD DL,30H INT 21H INC SI LOOP EXIT MOV AX,4C00H INT 21H CODE ENDS END START

nasm提示非法指令,小白求解答

刚学nasm,我捣鼓这个问题半天了,还是没找到bug,跪求解答,要用彩色输出fibonacci函数的值,输入用空格隔开如“12 13 14”,我用getint去获得输入的值,调用fibonacci1去计算,算出来的值用150位长的数组每个数组存一个字符,每次相加由arraybefore加到arraynow再由arraynow加到arraybefore里循环做加法,再用compare函数去选择颜色输出 代码如下 section .text global main ;Declaring the external functions to be used in the program....... getint: ;get the index of fibonacci mov eax,3 mov ebx,0 mov ecx,tem1 mov edx,1 int 80h mov eax,3 mov ebx,0 mov ecx,tem2 mov edx,1 int 80h cmp word[tem2],32 je count1 cmp word[tem2],10 je count1 mov eax,3 mov ebx,0 mov ecx,tem3 mov edx,1 int 80h cmp word[tem3],32 je count10 cmp word[tem3],10 je count10 count10: sub word[tem1],30h sub word[tem2],30h mov ax,word[tem1] mov dx,10 mul dx add ax,word[tem2] mov word[num],ax call fibonacci1 call compare cmp word[tem3],10 je exit jmp getint count1: sub word[tem1],30h mov ax,word[tem1] mov word[num],ax call fibonacci1 call compare cmp word[tem2],10 je exit jmp getint ret compare: cmp byte[number],1 je print1 cmp byte[number],2 je print2 cmp byte[number],3 je print3 print1: mov eax,4 mov ebx,1 mov ecx,echo1 mov edx,sizeEcho1 int 80h add byte[number],1 jmp printfibo1 print2: mov eax,4 mov ebx,1 mov ecx,echo2 mov edx,sizeEcho2 int 80h add byte[number],1 jmp printfibo1 print3: mov eax,4 mov ebx,1 mov ecx,echo3 mov edx,sizeEcho3 int 80h mov byte[number],1 jmp printfibo1 ret printfibo1: pop edx mov eax,arrayNow cmp eax,edx je end mov eax,arrayBefore cmp eax,edx je end mov al,byte[edx] mov byte[fibo],al sub edx,1 push edx mov eax,4 mov ebx,1 mov ecx,fibo mov edx,1 int 80h jmp printfibo1 end: mov eax,4 mov ebx,1 mov ecx,echoEnd mov edx,sizeEchoEnd int 80h mov ecx,150 mov ebx,arrayNow mov eax,arrayBefore recover: ;recover array to init status mov byte[ebx],-1 add ebx,1 mov byte[eax],-1 add eax,1 loop recover ret fibonacci1: mov cx,word[num] mov al,0 add al,30h ;integer 0 to char mov byte[arrayBefore],al ;init arrayBefore[0] = '0' mov al,1 add al,30h ;integer 1 to char mov byte[arrayNow],al ;init arrayNow[0] = '1' add: cmp cx,0 je print sub cx,1 cmp byte[record],0 ;the result of add to which array je nowToBefore jmp beforeToNow nowToBefore: mov ebx,arrayNow mov edx,arrayBefore mov byte[record],1 jmp addNumber beforeToNow: mov edx,arrayNow mov ebx,arrayBefore mov byte[record],0 jmp addNumber addNumber: ;add index of i of two arrays[i] mov al,byte[ebx] cmp al,-1 je add ;jump to the next add sub al,30h mov ah,byte[edx] cmp ah,-1 jne continue mov ah,0 add ah,30h continue: sub ah,30h add ah,al add ah,byte[carry1] cmp ah,10 jnb above10 mov byte[carry1],0 add ah,30h mov byte[edx],ah add ebx,1 add edx,1 jmp addNumber above10: mov byte[carry1],1 sub ah,10 add ah,30h mov byte[edx],ah add ebx,1 add edx,1 cmp byte[ebx],-1 je carry jmp addNumber carry: mov ah,1 add ah,30h mov byte[edx],ah jmp add print: push edx ret main: ;Main( ) Function mov eax, 4 mov ebx, 1 mov ecx, msg1 mov edx, size1 int 80h call getint exit: mov ebx , 0 mov eax, 1 int 80h section .data fmt: db "%d",0 msg1: db "Enter Fibonacci numbers:" size1: equ $-msg1 number: db 0 ;which color to print echo1: db 1Bh,"[48;32m" sizeEcho1: equ $-echo1 echo2: db 1Bh,"[48;33m" sizeEcho2: equ $-echo2 echo3: db 1Bh,"[48;34m" sizeEcho3: equ $-echo3 echoEnd: db 1Bh,"[0m",10 sizeEchoEnd: equ $-echoEnd arrayBefore: TIMES 150 db -1 ;init array of all -1 arrayNow: TIMES 150 db -1 ;the same as before carry1: db 0 ;carry if the result of add two integers record: db 0 ;record add arrayNow to arayBefore or opp section .bss num: resw 1 ;the index of fibonacci tem1: resw 1 tem2: resw 1 tem3: resw 1 fibo: resb 1 ;as a byte to print

我这个书上抄的汇编语言pic16f877代码有问题吗,为啥一直编译过不了

list p=16f877 include "p16f877.inc" org 0x00 nop Start: banksel PORTC clrf PORTC movlw B'01000001' movwf ADCONO banksel OPTION_REG clrf TRISC movlw B'00001110' movwf ADCON1 banksel PORTC Main: btfss INTCON,TOIF goto Main bcf INTCON,TOIF bsf ADCONO,GO Wait btfss PIR1,ADIF goto Wait movf ADRESH,W movwf PORTC goto Main end 我build之后显示这个 ---------------------------------------------------------------------- Debug build of project `G:\project\adc.mcp' started. Language tool versions: MPASMWIN.exe v5.37, mplink.exe v4.37, mplib.exe v4.37 Preprocessor symbol `__DEBUG' is defined. Fri Sep 08 19:27:24 2017 ---------------------------------------------------------------------- Clean: Deleting intermediary and output files. Clean: Done. Executing: "G:\MPLAB\MPASM Suite\MPASMWIN.exe" /q /p16F877A "adc.asm" /l"adc.lst" /e"adc.err" /d__DEBUG=1 Message[301] G:\MPLAB\MPASM SUITE\P16F877.INC 37 : MESSAGE: (Processor-header file mismatch. Verify selected processor.) Error[121] G:\PROJECT\ADC.ASM 5 : Illegal label (Start) Error[113] G:\PROJECT\ADC.ASM 8 : Symbol not previously defined (ADCONO) Message[302] G:\PROJECT\ADC.ASM 10 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] G:\PROJECT\ADC.ASM 12 : Register in operand not in bank 0. Ensure that bank bits are correct. Error[113] G:\PROJECT\ADC.ASM 14 : Symbol not previously defined (TOIF) Error[113] G:\PROJECT\ADC.ASM 16 : Symbol not previously defined (TOIF) Error[113] G:\PROJECT\ADC.ASM 17 : Symbol not previously defined (ADCONO) Halting build on first failure as requested. ---------------------------------------------------------------------- Debug build of project `G:\project\adc.mcp' failed. Language tool versions: MPASMWIN.exe v5.37, mplink.exe v4.37, mplib.exe v4.37 Preprocessor symbol `__DEBUG' is defined. Fri Sep 08 19:27:25 2017 ---------------------------------------------------------------------- BUILD FAILED

C语言内联汇编跳转语句的一些问题

跳转指令,该如何跳到下几条指令处,请大牛们指点下,代码如下! ``` __asm { push eax push ecx push edx push ebx mov eax, [ebp + 8] mov edx, [ebp + 0xC] mov edx, [edx] mov ebx, [edx + 4] lea edx, [edx+8] L1 test ebx,ebx je L2 //跳到L2处 mov cl, [edx] mov [eax],cl inc eax inc edx dec ebx jmp L1 //跳到L1处 L2 pop ebx pop ecx pop eax } ```

C语言转机器语言,求问,急

Program with machine language according to the following c. int_8 a = 1; int_8 c = a + 3; 1)Write your assembly code & machine code 2)Explain machine code execution with the fetch-decode-execute cycle 3)Explain functions about IR, PC, ACC registers in a CPU 4)Explain physical meaning about vars a & c in a machine

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

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 ;程序结束

求大神帮帮添加一个十六进制转十进制的功能在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 ;程序结束

求把这段C语言转换为MIPS

#include<cstdio> int quickSort(int * arr,int left , int right) { int i = left , j = right; int mid = arr[(i+j)/2]; //寻找基准值 while(i <= j) { //此循环将基准值放在正确的位置上 while(arr[i] < mid) i ++; while(arr[j] > mid) j --; if(i <= j) { int tmp; tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; i ++; j --; } } if(left < j) quickSort(arr,left , j); //处理左序列 if(i < right) quickSort(arr,i, right);//处理右序列 return 0; } int main() { FILE * infile ,*outfile; int buffer [1001]; infile = fopen("a.in","rb"); fread ( buffer, 4, 1001, infile); fclose(infile); int N = buffer[0]; quickSort(buffer,1,N); outfile = fopen("a.out","wb"); fwrite( &(buffer[1]), 4, N, outfile); fclose(outfile); return 0; }

dosbox debug xxx.exe access deny 怎么办?

如题 写了如下asm程序在dosbox中编译连接无报错,有一个warning:no stack segment ``` MOV DI,1000 MOV CX,8 MOV SI,2000 CLC LOP: MOV AL,[SI] ADC [DI],AL INC SI INC DI LOOP LOP INT 20 ``` exe程序执行不报错, 但是debug xxx.exe 报错access deny 是为什么?我用管理员权限运行了dosbox还是没用。

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

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

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

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

和黑客斗争的 6 天!

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

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

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

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

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

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

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

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

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

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

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

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

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 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多个条件是什么逻辑关系?条件判断在什么时候执...

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

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

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

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

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

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

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

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

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

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐