汇编逆向有一段看不懂了求大神解答

求大神解答一下下面这段的逻辑~

  int __cdecl sub_40E720(void *, size_t)
sub_40E720 proc near

var_8C= byte ptr -8Ch
var_4C= byte ptr -4Ch
var_4B= dword ptr -4Bh
var_47= dword ptr -47h
var_43= dword ptr -43h
var_3F= word ptr -3Fh
var_3D= byte ptr -3Dh
var_3C= byte ptr -3Ch
var_3B= dword ptr -3Bh
var_37= dword ptr -37h
var_33= dword ptr -33h
var_2F= dword ptr -2Fh
var_2B= word ptr -2Bh
var_29= byte ptr -29h
var_28= byte ptr -28h
var_27= byte ptr -27h
var_26= byte ptr -26h
var_25= byte ptr -25h
var_24= byte ptr -24h
var_23= byte ptr -23h
var_22= byte ptr -22h
var_21= byte ptr -21h
var_20= byte ptr -20h
var_1F= byte ptr -1Fh
var_1E= byte ptr -1Eh
var_1D= byte ptr -1Dh
var_1C= byte ptr -1Ch
var_1B= byte ptr -1Bh
var_1A= byte ptr -1Ah
var_19= byte ptr -19h
var_18= byte ptr -18h
var_17= byte ptr -17h
var_16= byte ptr -16h
var_15= byte ptr -15h
var_14= byte ptr -14h
var_13= byte ptr -13h
var_12= byte ptr -12h
var_11= byte ptr -11h
var_10= byte ptr -10h
var_F= byte ptr -0Fh
var_E= byte ptr -0Eh
var_D= byte ptr -0Dh
var_C= byte ptr -0Ch
var_B= byte ptr -0Bh
var_A= byte ptr -0Ah
var_9= byte ptr -9
var_8= dword ptr -8
var_4= dword ptr -4
arg_0= dword ptr  8
arg_4= dword ptr  0Ch

push    ebp
mov     ebp, esp
sub     esp, 8Ch
push    ebx
push    esi
push    edi
lea     edi, [ebp+var_8C]
mov     ecx, 23h
mov     eax, 0CCCCCCCCh
rep stosd
mov     [ebp+var_28], 0D4h
mov     [ebp+var_27], 36h
mov     [ebp+var_26], 96h
mov     [ebp+var_25], 80h
mov     [ebp+var_24], 79h
mov     [ebp+var_23], 0BEh
mov     [ebp+var_22], 16h
mov     [ebp+var_21], 87h
mov     [ebp+var_20], 0E8h
mov     [ebp+var_1F], 0F9h
mov     [ebp+var_1E], 4Dh
mov     [ebp+var_1D], 89h
mov     [ebp+var_1C], 0Dh
mov     [ebp+var_1B], 1Dh
mov     [ebp+var_1A], 0D9h
mov     [ebp+var_19], 2Bh
mov     [ebp+var_18], 0F9h
mov     [ebp+var_17], 0F1h
mov     [ebp+var_16], 38h
mov     [ebp+var_15], 57h
mov     [ebp+var_14], 15h
mov     [ebp+var_13], 79h
mov     [ebp+var_12], 5Fh
mov     [ebp+var_11], 6Dh
mov     [ebp+var_10], 0D8h
mov     [ebp+var_F], 0F5h
mov     [ebp+var_E], 36h
mov     [ebp+var_D], 0F2h
mov     [ebp+var_C], 0D0h
mov     [ebp+var_B], 62h
mov     [ebp+var_A], 0BCh
mov     [ebp+var_9], 0F4h
xor     eax, eax
mov     [ebp+var_8], eax
mov     [ebp+var_4], eax
mov     [ebp+var_3C], 0
xor     ecx, ecx
mov     [ebp+var_3B], ecx
mov     [ebp+var_37], ecx
mov     [ebp+var_33], ecx
mov     [ebp+var_2F], ecx
mov     [ebp+var_2B], cx
mov     [ebp+var_29], cl
mov     [ebp+var_4C], 0
xor     edx, edx
mov     [ebp+var_4B], edx
mov     [ebp+var_47], edx
mov     [ebp+var_43], edx
mov     [ebp+var_3F], dx
mov     [ebp+var_3D], dl
mov     eax, [ebp+arg_4]
push    eax             ; size_t
mov     ecx, [ebp+arg_0]
push    ecx             ; void *
lea     edx, [ebp+var_4C]
push    edx             ; void *
call    _memcpy
add     esp, 0Ch
lea     eax, [ebp+var_3C]
push    eax
lea     ecx, [ebp+var_4C]
push    ecx
call    sub_40100F
add     esp, 8
push    10h             ; size_t
lea     edx, [ebp+var_28]
push    edx             ; void *
lea     eax, [ebp+var_3C]
push    eax             ; void *
call    _memcmp
add     esp, 0Ch
test    eax, eax
jnz     short loc_40E836

1个回答

逆向的代码仅供参考,反汇编未必能正确识别数据和指令,尤其是这种动态加载执行的代码。建议你拿调试器去看。

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

__asm__(“andl %%esp, %0”;”:”=r” (ti) : “0” (~(THREAD_SIZE-1))); 网上解释:将当前指针%esp与数值~(THREAD_SIZE-1) 按位与运算,并将结果给ti。ti 保存的值恰好是内核态栈中的最低位地址,这里正是进程描述中成员变量thread_info所在的位置,也即当前进程描述符的成员变量thread_info的地址。 问题:%0代表的难道不是ti吗,那应该是%esp与ti按位与,并把结果给ti,和后面的“0” (~(THREAD_SIZE-1))有什么关系,刚刚接触内核汇编,不太懂,请大神赐教,谢谢谢谢

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

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

汇编 逆向工程 求解题过程

已知递归函数refunc的C语言代码框架如下:  1 int refunc(unsigned x) {  2  if (【1】)   3   return 【2】 ;   4  unsigned nx =【3】 ;  5  int rv = refunc(nx)    6  return 【4】;    7 }  上述递归函数过程体对应的汇编代码如下:   1 movl 8(%ebp), %ebx  2 movl $0, %eax   3 testl  %ebx, %ebx   4 je  .L2   5 movl %ebx, %eax  6 shrl  $1, %eax   7 movl %eax, (%esp)  8 call  refunc   9 movl %ebx, %edx   10 andl  $1, %edx   11 leal  (%edx, %eax), %eax   12 .L2:   ……    ret   根据对应的汇编代码填写C代码中缺失部分,并说明函数的功能。

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

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

汇编程序,求大神讲解

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

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

学校课程设计,这段是步进电机的控制代码,用键盘输入,在六位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

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

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

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

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

汇编语言8086/8088 小问题一个,求解答。

我初学者一枚。在学习汇编命令-A的时候,发现有这样一个问题。(例题上的) 例题是这样:![图片说明](https://img-ask.csdn.net/upload/201511/04/1446601221_399907.jpg) PS:问下,为什么010A和010B,显示的都是一样,有什么区别吗?在反编译-U的时候,可以用010A吗? (本人不富裕,暂时不发布悬赏,请谅解,麻烦哪位汇编高手解答下)

救急!求大神这段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 */ }

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; } ```

汇编新手问题,求详细解释,越详细越好。。。完全看不懂的样子

![![图片说明](https://img-ask.csdn.net/upload/201711/05/1509885194_549555.png)图片说明](https://img-ask.csdn.net/upload/201711/05/1509885188_844611.png)

求汇编逆向工程好手讲解一个较简单的汇编码,是一个加密过程

希望能举个例子输入6位数,然后跟着思路具体讲解下加密过程,然后得出结果是多少,在此谢过!![图片说明](https://img-ask.csdn.net/upload/201607/20/1468987816_554657.png) ![图片说明](https://img-ask.csdn.net/upload/201607/20/1468987833_618334.png) ![图片说明](https://img-ask.csdn.net/upload/201607/20/1468987841_862028.png) ![图片说明](https://img-ask.csdn.net/upload/201607/20/1468987848_531521.png)

这个为什么不显示字符串,求大神解答

mov ax,msg MOV Dx,ax MOV AH,9 INT 21H jmp $ times 510-($-$$) db 0 db 0x55,0xaa msg: db 'Hello World!' 运行的效果

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

将八位二进制数显示在屏幕上 为什么一直是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

求教汇编引导程序大神

请问一般这样的引导程序 是什么汇编? 为什么没有伪指令?也不能编译?请问直接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 $ 请教请教。谢谢大神们!!!!

汇编语言冒泡法排序两位数 输出不了结果 求大神指教

一个汇编语言的问题 冒泡法排序多个两位数,我的思路是把一个两位数存在一个AL里面然后排序再输出 但是没有办法输出结果 哪位大神可以点明一下 刚入门汇编 还不太懂 多谢多谢 ``` DATA SEGMENT NUMBER DB 100,?,100 DUP(?) ;开辟空白空间 TAB DB 0DH,0AH,'$' ;空格回车 LIST1 DB 'INPUT NUMBERS$' ;输入数字 LIST2 DB 'INPUT NUMBERS$' DATA ENDS CODE SEGMENT ASSUME DS:DATA , CS:CODE START: MOV AX,DATA MOV DS,AX LEA DX,LIST1 ;将文字显示到屏幕上 MOV AH,09H ;09H功能 显示字符 INT 21H ;DOS调用 LEA DX,TAB ;空格回车 MOV AH,09H ;显示回车空格在屏幕上 INT 21H INPUT: LEA BP,NUMBER XOR BX,BX MOV AH,01H INT 21H SUB AL,30H MOV AH,00H MOV BL,10H MUL BL ;BL和AL相乘放在AX里 MOV CL,AL MOV AH,01H INT 21H SUB AL,30H MOV AH,00H ADD AL,CL MOV DS:[BP],AL;存入NUMBER中 CMP AL,24H;判断是否与¥一样 JZ LP0 INC BP INC BL JMP INPUT LP0: LEA SI,NUMBER INC SI ;SI-1 MOV CL,[SI] ;输入个数->CL DEC CL INC SI MOV BX,SI ;外循环初始化SI=BX,CH=CL MOV CH,CL MOV AL,[BX] LP1: INC BX CMP [BX],AL ; [BX]-AL是否有近位 即CF=1 JNC LP2 XCHG AL,[BX] LP2: DEC CH JNZ LP1 ;不为零跳转 CMP CH,'0' JE LP3 LP3: MOV [SI],AL INC SI DEC CL JNZ LP0 CMP CL,'0' JE LP4 LP4: MOV AL,'$' ;代表‘ONPUT NUMBER’字符串 MOV [SI+1],AL LEA DX,TAB MOV AH,09H INT 21H LEA DX,LIST2 MOV AH,09H INT 21H LEA DX,TAB MOV AH,09H INT 21H MOV DX,OFFSET NUMBER ;将NUMBER的偏移地址给DX INC DX INC DX MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END START ```

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

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

如何用汇编语言编写程序 求大神帮忙

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

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

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

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

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

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

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

数据结构与算法思维导图

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

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

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

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

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

Linux命令学习神器!命令看不懂直接给你解释!

大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件不可能完成的任务。 一般情况下,我们学习一个命令时,要么直接百度去搜索它的用法,要么就直接用 man 命令去查看守冗长的帮助手册。这两个都可以实现我们的目标,但有没有更简便的方式呢? 答案是必须有的!今天给大家推荐一款有趣而实用学习神器 — kmdr,让你解锁 Linux 学习新姿势...

和黑客斗争的 6 天!

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

史上最全的 python 基础知识汇总篇,没有比这再全面的了,建议收藏

网友们有福了,小编终于把基础篇的内容全部涉略了一遍,这是一篇关于基础知识的汇总的文章,请朋友们收下,不用客气,不过文章篇幅肯能会有点长,耐心阅读吧爬虫(七十)多进程multiproces...

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

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

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

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

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

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

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

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

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

新一代神器STM32CubeMonitor介绍、下载、安装和使用教程

关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang最近ST官网悄悄新上线了一款比较强大的工具:STM32CubeMonitor V1.0.0。经过我研究和使用之...

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

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

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

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

大学一路走来,学习互联网全靠这几个网站,最终拿下了一把offer

大佬原来都是这样炼成的

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

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

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

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

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

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

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

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

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

你期望月薪4万,出门右拐,不送,这几个点,你也就是个初级的水平

先来看几个问题通过注解的方式注入依赖对象,介绍一下你知道的几种方式@Autowired和@Resource有何区别说一下@Autowired查找候选者的...

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

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

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

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

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

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

立即提问
相关内容推荐