b站滴水逆向课后练习(更新中)

B站滴水逆向,想学习逆向知识的一起学习吧!

评论区有热心网友提供了全部课件,真心非常感谢!

提取链接:https://pan.baidu.com/s/1YwUP9I7Vctqiq1sOW9feBA

提取码:p64y

第一集

列出0~100个二进制值(有机会列出1到16进制)

1进制

1 11 111 1111 11111 111111 1111111 11111111 111111111 1111111111 
#由于太简单了,不宜列出,直接给出Python3源码吧:
x=1
while x<=101:
    i = '1' * x
    x+=1
    print(i)
print(len(str(i))) #最后一行字符个数

2进制

0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100  11101 11110 11111 100000 100001 100010 100011 100100 100101 100110 100111 101000 101001 101010 101011 101100 101101 101110 101111 110000 110001 110010 110011 110100 110101 110110 110111 111000 111001 111010 111011 111100 111101 111110 111111 1000000 1000001 1000010 1000011 1000100 1000101 1000110 1000111 1001000 1001001 1001010 1001011 1001100 1001101 1001110 1001111 1010000 1010001 1010010 1010011 1010100 1010101 1010110 1010111 1011000 1011001 1011010 1011011 1011100 1011101 1011110 1011111 1100000 1100001 1100010 1100011 1100100

3进制

0 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 122 200 201 202 210 211 212 220 221 222 1000 1001 1002 1010 1011 1012 1020 1021 1022 1100 1101 1102 1110 1111 1112 1120 1121 1122 1200 1201 1202 1210 1211 1212 1220 1221 1222 2000 2001 2002 2010 2011 2012 2020 2021 2022 2100 2101 2102 2110 2111 2112 2120 2121 2122 2200 2201 2202 2210 2211 2212 2220 2221 2222 10000 10001 10002 10010 10011 10012 10020 10021 10022 10100 10101 10102 10110 10111 10112 10120 10121 10122 10200 10201

4进制

0 1 2 3 10 11 12 13 20 21 22 23 30 31 32 33 100 101 102 103 110 111 112 113 120 121 122 123 130 131 132 133 200 201 202 203 210 211 212 213 220 221 222 223 230 231 232 233 300 301 302 303 310 311 312 313 320 321 322 323 330 331 332 333 1000 1001 1002 1003 1010 1011 1012 1013 1020 1021 1022 1023 1030 1031 1032 1033 1100 1101 1102 1103 1110 1111 1112 1113 1120 1121 1122 1123 1130 1131 1132 1133 1200 1201 1202 1203 1210

5进制

0 1 2 3 4 10 11 12 13 14 20 21 22 23 24 30 31 32 33 34 40 41 42 43 44 100 101 102 103 104 110 111 112 113 114 120 121 122 123 124 130 131 132 133 134 140 141 142 143 144 200 201 202 203 204 210 211 212 213 214 220 221 222 223 224 230 231 232 233 234 240 241 242 243 244 300 301 302 303 304 310 311 312 313 314 320 321 322 323 324 330 331 332 333 334 340 341 342 343 344 400

6进制

0 1 2 3 4 5 10 11 12 13 14 15 20 21 22 23 24 25 30 31 32 33 34 35 40 41 42 43 44 45 50 51 52 53 54 55 100 101 102 103 104 105 110 111 112 113 114 115 120 121 122 123 124 125 130 131 132 133 134 135 140 141 142 143 144 145 150 151 152 153 154 155 200 201 202 203 204 205 210 211 212 213 214 215 220 221 222 223 224 225 230 231 232 233 234 235 240 241 242 243 244

7进制

0 1 2 3 4 5 6 10 11 12 13 14 15 16 20 21 22 23 24 25 26 30 31 32 33 34 35 36 40 41 42 43 44 45 46 50 51 52 53 54 55 56 60 61 62 63 64 65 66 100 101 102 103 104 105 106 110 111 112 113 114 115 116 120 121 122 123 124 125 126 130 131 132 133 134 135 136 140 141 142 143 144 145 146 150 151 152 153 154 155 156 160 161 162 163 164 165 166 200 201 202

8进制

0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 120 121 122 123 124 125 126 127 130 131 132 133 134 135 136 137 140 141 142 143 144

9进制

0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 20 21 22 13 24 25 26 27 28 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 120 121 122 123 124 125 126 127 128 130 131 132 133 134 135 136 137 138 140 141

10进制

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #从小学到大的东西就不多写了

11进制

0 1 2 3 4 5 6 7 8 9 A 10 11 12 13 14 15 16 17 18 19 1A 20 21 22 23 24 25 26 27 28 29 2A 30 31 32 33 34 35 36 37 38 39 3A 40 41 42 43 44 45 46 47 48 49 4A 50 51 52 53 54 55 56 57 58 59 5A 60 61 62 63 64 65 66 67 68 69 6A 70 71 72 73 74 75 76 77 78 79 7A 80 81 82 83 84 85 86 87 88 89 8A 90 91 92 93 94 95 96 97 98 99 9A 100 101 102 103 104 105 106 107 108 109 10A

记住二进制与十六进制的映射(每日两遍)

  0   1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 

练习:16转2进制(每日两遍)

487FDC120ACE69B953FE
0100 1000 0111 1111 1101 1100 0001 0010 0000 1010 1100 1110 0110 1001 1011 1001 0101 0011 1111 1110

练习:2转16进制(每日两遍)

1100 1011 0101 0100 1101 1110 1011 0101 0111 1011 0111 1010 1011 1000 0101 1100 1101 0010 0011 1001 1101
CB54DEB57B7AB85CD239D

八进制

 0       1       2       3       4       5       6       7
10       11      12      13      14      15      16      17
20       21      22      23      24      25      26      27
30       31      32      33      34      35      36      37
40       41      42      43      44      45      46      47
50       51      52      53      54      55      56      57
60       61      62      63      64      65      66      67
70       71      72      73      74      75      76      77
100      101     102     103     104     105     106     107
110      111     112     113     114     115     116     117

八进制加法表

1+1=2
1+2=3  2+2=4
1+3=4  2+3=5  3+3=6
1+4=5  2+4=6  3+4=7  4+4=10
1+5=6  2+5=7  3+5=10 4+5=11 5+5=12
1+6=7  2+6=10 3+6=11 4+6=12 5+6=13 6+6=14 
1+7=10 2+7=11 3+7=12 4+7=13 5+7=14 6+7=15 7+7=16

八进制乘法表

1*1=1
1*2=2  2*2=4
1*3=3  2*3=6  3*3=11
1*4=4  2*4=10 3*4=14 4*4=20
1*5=5  2*5=12 3*5=17 4*5=24 5*5=31
1*6=6  2*6=14 3*6=22 4*6=30 5*6=36 6*6=44
1*7=7  2*7=16 3*7=25 4*7=34 5*7=43 6*7=52 7*7=61

7进制加法表

1+1=2
1+2=3  2+2=4
1+3=4  2+3=5  3+3=6
1+4=5  2+4=6  3+4=10 4+4=11
1+5=6  2+5=10 3+5=11 4+5=12 5+5=13
1+6=10 2+6=11 3+6=12 4+6=13 5+6=14 6+6=15

7进制乘法表

1*1=1
1*2=2  2*2=4
1*3=3  2*3=6  3*3=12
1*4=4  2*4=11 3*4=15 4*4=22
1*5=5  2*5=13 3*5=21 4*5=26 5*5=34
1*6=6  2*6=15 3*6=24 4*6=33 5*6=42 6*6=51

7进制练习题

23456+54356=111145  5621-654=4636  234*65=22566
  23456				 5623		       234
 +54356			     -654		      * 65
 111145				 4636		      1536
 								     2103
 								     22566

16进制加法表

1+1=2
1+2=3  2+2=4
1+3=4  2+3=5  3+3=6
1+4=5  2+4=6  3+4=7  4+4=8
1+5=6  2+5=7  3+5=8  4+5=9  5+5=A
1+6=7  2+6=8  3+6=9  4+6=A  5+6=B  6+6=C
1+7=8  2+7=9  3+7=A  4+7=B  5+7=C  6+7=D  7+7=E
1+8=9  2+8=A  3+8=B  4+8=C  5+8=D  6+8=E  7+8=F  8+8=10
1+9=A  2+9=B  3+9=C  4+9=D  5+9=E  6+9=F  7+9=10 8+9=11 9+9=12
1+A=B  2+A=C  3+A=D  4+A=E  5+A=F  6+A=10 7+A=11 8+A=12 9+A=13 A+A=14
1+B=C  2+B=D  3+B=E  4+B=F  5+B=10 6+B=11 7+B=12 8+B=13 9+B=14 A+B=15 B+B=16
1+C=D  2+C=E  3+C=F  4+C=10 5+C=11 6+C=12 7+C=13 8+C=14 9+C=15 A+C=16 B+C=17 C+C=18
1+D=E  2+D=F  3+D=10 4+D=11 5+D=12 6+D=13 7+D=14 8+D=15 9+D=16 A+D=17 B+D=18 C+D=19 D+D=1A
1+E=F  2+E=10 3+E=11 4+E=12 5+E=13 6+E=14 7+E=15 8+E=16 9+E=17 A+E=18 B+E=19 C+E=1A D+E=1B E+E=1C
1+F=10 2+F=11 3+F=12 4+F=13 5+F=14 6+F=15 7+F=16 8+F=17 9+F=18 A+F=19 B+F=1A C+F=1B D+F=1C E+F=1D F+F=1E

16进制乘法表

1*1=1
1*2=2  2*2=4
1*3=3  2*3=6  3*3=9
1*4=4  2*4=8  3*4=C  4*4=10
1*5=5  2*5=A  3*5=F  4*5=14 5*5=19
1*6=6  2*6=C  3*6=12 4*6=18 5*6=1E 6*6=24
1*7=7  2*7=E  3*7=15 4*7=1C 5*7=23 6*7=2A 7*7=31
1*8=8  2*8=10 3*8=18 4*8=20 5*8=28 6*8=30 7*8=38 8*8=40
1*9=9  2*9=12 3*9=1B 4*9=24 5*9=2D 6*9=36 7*9=3F 8*9=48 9*9=51
1*A=A  2*A=14 3*A=1E 4*A=28 5*A=32 6*A=3C 7*A=46 8*A=50 9*A=5A A*A=64
1*B=B  2*B=16 3*B=21 4*B=2C 5*B=37 6*B=42 7*B=4D 8*B=58 9*B=63 A*B=6E B*B=79
1*C=C  2*C=18 3*C=24 4*C=30 5*C=3C 6*C=48 7*C=54 8*C=60 9*C=6C A*C=78 B*C=84 C*C=90
1*D=D  2*D=1A 3*D=27 4*D=34 5*D=41 6*D=4E 7*D=5B 8*D=68 9*D=75 A*D=82 B*D=8F C*D=9C D*D=A9
1*E=E  2*E=1C 3*E=2A 4*E=38 5*E=46 6*E=54 7*E=62 8*E=70 9*E=7E A*E=8C B*E=9A C*E=A8 D*E=B6 E*E=C4
1*F=F  2*F=1E 3*F=2D 4*F=3C 5*F=4B 6*F=5A 7*F=69 8*F=78 9*F=87 A*F=96 B*F=A5 C*F=B4 D*F=C3 E*F=D2 F*F=E1

16进制练习题

2D4E6+CF3A6=FC892    5FD1-E5A=5171    2CA*A5=1CC32
   2D4E6			    5FD1			 2CA
  +CF3A6				-E5A			 *A5
   FC88C				5177			 DF2
   									   1BE4
   									   1CC32

第二集

课堂练习

3进制定义:由3个符号组成,分别是:2、0、1,逢3进1

2 0 1 02 00 01 12 10 11 022 020 021 002 000 001 012 010 011 122 120 121 102 100 101 112 110 111 0222 0220 0221 0202 0200 0201 0212 0210 0211 0022 0020 0021 0002 0000 0001 0012 0010 0011 0122 0120 0121 0102 0100 0101 0112 0110 0111 1222 1220 1221 1202 1200 1201 1212 1210 1211 1022 1020 1021 1002 1000 1001 1012 1010 1011 1122 1120 1121 1102 1100 1101 1112 1110 1111

4进制定义:由4个符号组成,分别是:3、8、2、4,逢4进1

3 8 2 4 83 88 82 84 23 28 22 24 43 48 42 44 833 838 832 834 883 888 882 884 823 828 822 824 843 848 842 844 233 238 232 234 283 282 284 223 228 222 224 243 248 242 244 433 438 432 434 483 488 482 484 423 428 422 424 443 448 442 444 8333 8338 8332 8334 8383 8388 8382 8384 8323 8328 8322 8324 8343 8348 8342 8344 8833 8838 8832 8834 8883 8888

5进制定义:由5个符号组成,分别是:6、1、4、2、7,逢5进1

6 1 4 2 7 16 11 14 12 17 46 41 44 42 47 26 21 24 22 27 76 71 74 72 77 166 161 164 162 167 116 111 114 112 117 146 141 144 142 147 126 121 124 122 127 176 171 174 172 177 466 461 464 462 467 416 411 414 412 417 446 441 444 442 447 426 421 424 422 427 476 471 474 472 477 266 261 264 262 267 216 211 214 212 217 246 241 244 242 247 226 221 224 222 227 276 271 274 272 277 766 761 764 762 767 716 711 714 712 717 746 741 744 742 747 726 721 724 722 727 776 771 774 772 777

6进制定义:由6个符号组成,分别是:9、3、2、1、4、6

9 3 2 1 4 6 39 33 32 31 34 36 29 23 22 21 24 26 19 13 12 11 14 16 49 43 42 41 44 46 69 63 62 61 64 66 399 393 392 391 394 396 339 333 332 331 334 336 329 323 322 321 324 326 319 313 312 311 314 316 349 343 342 341 344 346 369 363 362 361 364 366 299 293 292 291 294 296 239 233 232 232 231 234 236 229 223 222

7进制定义:由7个符号组成,分别是:8、3、4、2、9、5、6,逢7进1

8 3 4 2 9 5 6 38 33 34 32 39 35 36 48 43 42 49 45 46 28 23 24 22 29 25 26 98 93 94 92 99 95 96 58 53 54 52 59 56 68 63 64 62 69 65 66 388 383 384 382 389 385 386 338 333 334 332 339 335 336 348 343 344 342 349 345 346 328 323 324 322 329 325 326 398 393 394 392 399 395 396 358 353 354 352 359 355 356 368 363 364 362 369 365 366 488 483 484 482 489 485 486 438 433 434 432 439 435 436 448 443 444

本节作业

1、9进制定义:有9个符号组成,分别是:2、9、1、7、6、5、4、8、3,逢9进1

2 9 1 7 6 5 4 8 3 92 99 91 97 96 95 94 98 93 12 19 11 17 16 15 14 18 13 72 79 71 77 76 75 74 78 73 62 69 61 67 66 65 64 68 63 52 59 51 57 56 55 54 58 53 42 49 41 47 46 45 44 48 43 82 89 81 87 86 85 84 83 32 39 31 37 36 35 34 38 33 922 929 921 927 926 925 924 928 923 992 999

加法表

9+9=1
9+1=7  1+1=6
9+7=6  1+7=5  7+7=4
9+6=5  1+6=4  7+6=8  6+6=3
9+5=4  1+5=8  7+5=3  6+5=92 5+5=99
9+4=8  1+4=3  7+4=92 6+4=99 5+4=91 4+4=97
9+8=3  1+8=92 7+8=99 6+8=91 5+8=97 4+8=96 8+8=95
9+3=92 1+3=99 7+3=91 6+3=97 5+3=96 4+3=95 8+3=94 3+3=98

计算

 123+234=694     
     123
    +234
     725 

2、10进制定义:由10个符号组成,分别是:!、@、$、%、^、&、*、A、B、C,逢10进1

! @ $ % ^ & * A B C @! @@ @$ @% @^ @& @* @A @B @C $! $@ $$ $% $^ $& $* $A $B $C %! %@ %$ %% %^ %& %* %A %B %C ^! ^@ ^$ ^% ^^ ^& ^* ^A ^B ^C &! &@ &$ &% &^ && &* &A &B &C *!*@ *$ *% *^ *& ** *A *B *C A! A@ A$ A% A^ A& A* AA AB AC B! B@ B$ B% B^ B& B* BA BB BC C! C@ C$ C% C^ C& C* CA CB CC @!! @!@ @!$ @!% @!^ @!& @!* @!A @!B @!C @@! @@@

加法表

@+@=$
@+$=%  $+$=^
@+%=^  $+%=&  %+%=*
@+^=&  $+^=*  %+^=A  ^+^=B
@+&=*  $+&=A  %+&=B  ^+&=C  &+&=@!
@+*=A  $+*=B  %+*=C  ^+*=@! &+*=@@ *+*=@$
@+A=B  $+A=C  %+A=@! ^+A=@@ &+A=@$ *+A=@% A+A=@^
@+B=C  $+B=@! %+B=@@ ^+B=@$ &+B=@% *+B=@^ A+B=@& B+B=@*
@+C=@! $+C=@@ %+C=@$ ^+C=@% &+C=@^ *+C=@& A+C=@* B+C=@A C+C=@B

计算

   @$$B + %AC& =&!$%
        @$$B
       +%AC&
        &!$%

第三集

课堂练习

2+3=5    #用计算机的逻辑运算本质运算
X:0010   #将2存入容器X
Y:0011   #将-3存入容器Y
     0010
 xor 0011    #异或
     0001    R:0001  #将0001存入容器R
     
     0010
   & 0011
     0010   #与运算后得出0
     
     0010 <<1 == 0100   #左移一位是0100,不为0000所以继续
 X:0001   #将0001存入容器X
 Y:0100   #将0100存入容器Y
     0001
 xor 0100   #异或
     0101   R:0101  将0101存入容器R

     0001
   & 0100
     0000 <<1 == 0000  #左移一位还是0000,得出结果就是0101即 5

本节作业

1、八进制数2-5 在计算器中的结果是:1777777777777777777775 为什么?

转化成十六进制省略后为FD,表示的值为-3。

2、使用异或对 87AD6 进行加密后再进行解密,加解密秘钥:5

加密:
     10000111101011010110
 xor 01010101010101010101
     11010010111110000011    #加密后的值为D2F83
解密:
     11010010111110000011
 xor 01010101010101010101
     10000111101011010110    #解密后的值为87AD6

3、只用逻辑运算2-3=?(涉及内容:逻辑运算、移位、数据宽度)

2-3=-1   #用计算机的逻辑运算本质运算
X:0010   #将2存入容器X
Y:1101   #将-3存入容器Y
     0010
 xor 1101    #异或
     1111    #值为-1
     
     0010
   & 1101
     0000   #与运算后得出0
     
     0000 <<1 == 0000   #左移一位还是0000,得出结果就是1111即 -1

额外内容

记住32位通用寄存器英文缩写就OK了

  寄存器   主要用途                              编号        存储的数据范围
   EAX     累加器							     0    		0 - 0xFFFFFFFF
   ECX     计数								     1          0 - 0xFFFFFFFF
   EDX     I/O指针							     2          0 - 0xFFFFFFFF
   EBX     DS段的数据指针						     3          0 - 0xFFFFFFFF
   ESP     堆栈指针							     4          0 - 0xFFFFFFFF
   EBP     SS段的数据指针					         5          0 - 0xFFFFFFFF
   ESI     字符串操作的源指针;SS段的数据指针	     6			0 - 0xFFFFFFFF
   EDI     字符串操作的目标指针;ES段的数据指针   	 7			0 - 0xFFFFFFFF

本节作业

下载DTDebug并练习

开头的课件里有哦大家自行下载吧。

1、使用DTDebug打开一个EXE程序(F3),并找到寄存器窗口。

2、使用DTDebug打开一个EXE程序(F3),单步执行程序(F8)。

3、记住这8个通用寄存器的名称,按照顺序。

4、使用DTDebug打开一个EXE程序(F3),使用MOV指令修改8个寄存器的值单步执行,观察修改后的结果。

第四集

本节作业

题目课件里有,这里就不列出了

按老师留的一个个练习吧
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第五集

开头的寻址公式练习

在这里插入图片描述
在这里插入图片描述

本节练习

本来写完了切出浏览器去上网课了,回来后自动刷新啥也没了,坑啊,说好的自动保存,就算没保存也不至于自动刷新吧,泪目。。。
(本来可以更详细的)

1、使用EBX存储栈底地址,EDX存储栈顶地址,连续存储5个不同的数.
在这里插入图片描述
2、分别使用栈底加偏移、栈顶加偏移的方式读取这5个数,并存储到寄存器中.(第三问包括了,嘻嘻)
3、弹出这5个数,恢复栈顶到原来的位置.
在这里插入图片描述
4、使用2种方式实现:push ecx
在这里插入图片描述
5、使用2种方式实现:pop ecx
在这里插入图片描述
6、使用2种方式实现:push esp
在这里插入图片描述
7、使用2种方式实现:pop esp
在这里插入图片描述

第六集(标志寄存器)

课前彩蛋

破解一个简单的CRACKME.EXE
在这里插入图片描述
首先我们打开软件,软件里有一个登陆功能,如图:
在这里插入图片描述
我们随便输入后弹出一个框,显然是密码错误的意思:
在这里插入图片描述
通过听课知道了这是一个MessageBoxA弹窗,接着我们在od里面下断点:
在这里插入图片描述
运行程序登录并随意输入,停在此处后,在栈顶右击找到该位置

在这里插入图片描述
可以发现两个部分一部分是登录成功的弹窗,一部分是登陆失败的弹窗,我们继续在登录失败附近下断点,这样更接近判断密码是否正确的位置
在这里插入图片描述
接着在登陆程序一次,在od里找栈顶右击,找到对应位置
在这里插入图片描述
在这里插入图片描述
我们找到了关键信息,登录信息通过识别JE是否执行来跳转的,我们只需要在这个位置下断点,修改右边标志寄存器Z的值为1即可登陆成功!
在这里插入图片描述

课堂练习

标志寄存器

来自滴水三期课件
查看DTDEBUG中的EFLAGS的值,然后转换成二进制的形式,并取出CF/PF/AF/ZF/SF/OF的值
1、进位标志CF(Carry Flag):如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。
在这里插入图片描述
2、奇偶标志PF(Parity Flag):奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。
在这里插入图片描述
3、辅助进位标志AF(Auxiliary Carry Flag):
(1)、在字操作时,发生低字节向高字节进位或借位时;
(2)、在字节操作时,发生低4位向高4位进位或借位时。
在这里插入图片描述
4、零标志ZF(Zero Flag):零标志ZF用来反映运算结果是否为0。
在这里插入图片描述
5、符号标志SF(Sign Flag):符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。
在这里插入图片描述
6、溢出标志OF(Overflow Flag):溢出标志OF用于反映有符号数加减运算所得结果是否溢出。(注意宽度的一半也不要与AF混淆)
最高位进位与溢出的区别:进位标志表示无符号数运算结果是否超出范围。.
溢出主要是给有符号运算使用的,在有符号的运算中,有如下的规律:
(1)正 + 正 = 正 如果结果是负数,则说明有溢出
(2)负 + 负 = 负 如果结果是正数,则说明有溢出
(3)正 + 负 永远都不会有溢出.
在这里插入图片描述
1、无符号、有符号都不溢出
在这里插入图片描述
2、无符号溢出、有符号不溢出
在这里插入图片描述
3、无符号不溢出、有符号溢出
在这里插入图片描述
4、无符号、有符号都溢出
认真练习过后,很负责任地说确实不简单,试了多次才明白过来,理解的更加透彻了。
在这里插入图片描述
在这里插入图片描述

练习截图

在这里插入图片描述
在这里插入图片描述

ADC/SBB/XCHG指令

adc指令:带进位加法(注意将进位标志寄存器值改为1。否则只是普通的加法)
进行普通加法后的值进一位,如:4进一位为5
格式:ADC R/M,R/M/IMM 两边不能同时为内存 宽度要一样
在这里插入图片描述
SBB指令:带错位减法(注意将进位标志寄存器值改为1。否则只是普通的减法)
进行普通加法后的值减一位,如:4减一位为3
格式:SBB R/M,R/M 两边不能同时为内存 宽度要一样
在这里插入图片描述
XCHG指令:交换数据
将两边的数值进行等位交换
格式:XCHG R/M,R/M/IMM 两边不能同时为内存 宽度要一样
在这里插入图片描述
MOVS指令:移动数据 内存-内存
可以进行内存到内存的数据移动,一般将要移动的内存地址保存在ESI和EDI中,将ESI指向的内存地址复制到EDI指向的内存中
格式:BYTE/WORD/DWORD
在这里插入图片描述
练习截图在这里插入图片描述
在这里插入图片描述
STOS指令:将Al/AX/EAX的值存储到[EDI]指定的内存单元
在这里插入图片描述
REP指令:按计数寄存器(ECX)中指定的次数重复执行字符串指令
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46148324/article/details/105289208