From a0d3cac4e69101669681a4d8af6dc3e8bd2c9a6a Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Sun, 15 Sep 2019 00:01:26 -0700 Subject: 5659 --- html/018jump_disp32.cc.html | 100 ++++++++++++++++++++++---------------------- 1 file changed, 50 insertions(+), 50 deletions(-) (limited to 'html/018jump_disp32.cc.html') diff --git a/html/018jump_disp32.cc.html b/html/018jump_disp32.cc.html index 308e5b00..3c220097 100644 --- a/html/018jump_disp32.cc.html +++ b/html/018jump_disp32.cc.html @@ -62,7 +62,7 @@ if ('onhashchange' in window) { 3 //:: jump 4 5 :(before "End Initialize Op Names") - 6 put_new(Name, "e9", "jump disp32 bytes away (jmp)"); + 6 put_new(Name, "e9", "jump disp32 bytes away (jmp)"); 7 8 :(code) 9 void test_jump_disp32() { @@ -85,18 +85,18 @@ if ('onhashchange' in window) { 26 case 0xe9: { // jump disp32 27 const int32_t offset = next32(); 28 trace(Callstack_depth+1, "run") << "jump " << offset << end(); - 29 EIP += offset; + 29 EIP += offset; 30 break; 31 } 32 33 //:: jump if equal/zero 34 35 :(before "End Initialize Op Names") - 36 put_new(Name_0f, "84", "jump disp32 bytes away if equal, if ZF is set (jcc/jz/je)"); + 36 put_new(Name_0f, "84", "jump disp32 bytes away if equal, if ZF is set (jcc/jz/je)"); 37 38 :(code) 39 void test_je_disp32_success() { - 40 ZF = true; + 40 ZF = true; 41 run( 42 "== code 0x1\n" 43 // op ModR/M SIB displacement immediate @@ -115,16 +115,16 @@ if ('onhashchange' in window) { 56 :(before "End Two-Byte Opcodes Starting With 0f") 57 case 0x84: { // jump disp32 if ZF 58 const int32_t offset = next32(); - 59 if (ZF) { + 59 if (ZF) { 60 trace(Callstack_depth+1, "run") << "jump " << offset << end(); - 61 EIP += offset; + 61 EIP += offset; 62 } 63 break; 64 } 65 66 :(code) 67 void test_je_disp32_fail() { - 68 ZF = false; + 68 ZF = false; 69 run( 70 "== code 0x1\n" 71 // op ModR/M SIB displacement immediate @@ -143,11 +143,11 @@ if ('onhashchange' in window) { 84 //:: jump if not equal/not zero 85 86 :(before "End Initialize Op Names") - 87 put_new(Name_0f, "85", "jump disp32 bytes away if not equal, if ZF is not set (jcc/jnz/jne)"); + 87 put_new(Name_0f, "85", "jump disp32 bytes away if not equal, if ZF is not set (jcc/jnz/jne)"); 88 89 :(code) 90 void test_jne_disp32_success() { - 91 ZF = false; + 91 ZF = false; 92 run( 93 "== code 0x1\n" 94 // op ModR/M SIB displacement immediate @@ -168,14 +168,14 @@ if ('onhashchange' in window) { 109 const int32_t offset = next32(); 110 if (!ZF) { 111 trace(Callstack_depth+1, "run") << "jump " << offset << end(); -112 EIP += offset; +112 EIP += offset; 113 } 114 break; 115 } 116 117 :(code) 118 void test_jne_disp32_fail() { -119 ZF = true; +119 ZF = true; 120 run( 121 "== code 0x1\n" 122 // op ModR/M SIB displacement immediate @@ -194,14 +194,14 @@ if ('onhashchange' in window) { 135 //:: jump if greater 136 137 :(before "End Initialize Op Names") -138 put_new(Name_0f, "8f", "jump disp32 bytes away if greater (signed), if ZF is unset and SF == OF (jcc/jg/jnle)"); -139 put_new(Name_0f, "87", "jump disp32 bytes away if greater (unsigned), if ZF is unset and CF is unset (jcc/ja/jnbe)"); +138 put_new(Name_0f, "8f", "jump disp32 bytes away if greater (signed), if ZF is unset and SF == OF (jcc/jg/jnle)"); +139 put_new(Name_0f, "87", "jump disp32 bytes away if greater (unsigned), if ZF is unset and CF is unset (jcc/ja/jnbe)"); 140 141 :(code) 142 void test_jg_disp32_success() { -143 ZF = false; +143 ZF = false; 144 SF = false; -145 OF = false; +145 OF = false; 146 run( 147 "== code 0x1\n" 148 // op ModR/M SIB displacement immediate @@ -220,26 +220,26 @@ if ('onhashchange' in window) { 161 :(before "End Two-Byte Opcodes Starting With 0f") 162 case 0x8f: { // jump disp32 if !SF and !ZF 163 const int32_t offset = next32(); -164 if (!ZF && SF == OF) { +164 if (!ZF && SF == OF) { 165 trace(Callstack_depth+1, "run") << "jump " << offset << end(); -166 EIP += offset; +166 EIP += offset; 167 } 168 break; 169 } 170 case 0x87: { // jump disp32 if !CF and !ZF -171 const int32_t offset = next(); +171 const int32_t offset = next(); 172 if (!CF && !ZF) { 173 trace(Callstack_depth+1, "run") << "jump " << offset << end(); -174 EIP += offset; +174 EIP += offset; 175 } 176 break; 177 } 178 179 :(code) 180 void test_jg_disp32_fail() { -181 ZF = false; +181 ZF = false; 182 SF = true; -183 OF = false; +183 OF = false; 184 run( 185 "== code 0x1\n" 186 // op ModR/M SIB displacement immediate @@ -258,13 +258,13 @@ if ('onhashchange' in window) { 199 //:: jump if greater or equal 200 201 :(before "End Initialize Op Names") -202 put_new(Name_0f, "8d", "jump disp32 bytes away if greater or equal (signed), if SF == OF (jcc/jge/jnl)"); -203 put_new(Name_0f, "83", "jump disp32 bytes away if greater or equal (unsigned), if CF is unset (jcc/jae/jnb)"); +202 put_new(Name_0f, "8d", "jump disp32 bytes away if greater or equal (signed), if SF == OF (jcc/jge/jnl)"); +203 put_new(Name_0f, "83", "jump disp32 bytes away if greater or equal (unsigned), if CF is unset (jcc/jae/jnb)"); 204 205 :(code) 206 void test_jge_disp32_success() { 207 SF = false; -208 OF = false; +208 OF = false; 209 run( 210 "== code 0x1\n" 211 // op ModR/M SIB displacement immediate @@ -283,9 +283,9 @@ if ('onhashchange' in window) { 224 :(before "End Two-Byte Opcodes Starting With 0f") 225 case 0x8d: { // jump disp32 if !SF 226 const int32_t offset = next32(); -227 if (SF == OF) { +227 if (SF == OF) { 228 trace(Callstack_depth+1, "run") << "jump " << offset << end(); -229 EIP += offset; +229 EIP += offset; 230 } 231 break; 232 } @@ -293,7 +293,7 @@ if ('onhashchange' in window) { 234 const int32_t offset = next32(); 235 if (!CF) { 236 trace(Callstack_depth+1, "run") << "jump " << offset << end(); -237 EIP += offset; +237 EIP += offset; 238 } 239 break; 240 } @@ -301,7 +301,7 @@ if ('onhashchange' in window) { 242 :(code) 243 void test_jge_disp32_fail() { 244 SF = true; -245 OF = false; +245 OF = false; 246 run( 247 "== code 0x1\n" 248 // op ModR/M SIB displacement immediate @@ -320,14 +320,14 @@ if ('onhashchange' in window) { 261 //:: jump if lesser 262 263 :(before "End Initialize Op Names") -264 put_new(Name_0f, "8c", "jump disp32 bytes away if lesser (signed), if SF != OF (jcc/jl/jnge)"); -265 put_new(Name_0f, "82", "jump disp32 bytes away if lesser (unsigned), if CF is set (jcc/jb/jnae)"); +264 put_new(Name_0f, "8c", "jump disp32 bytes away if lesser (signed), if SF != OF (jcc/jl/jnge)"); +265 put_new(Name_0f, "82", "jump disp32 bytes away if lesser (unsigned), if CF is set (jcc/jb/jnae)"); 266 267 :(code) 268 void test_jl_disp32_success() { -269 ZF = false; +269 ZF = false; 270 SF = true; -271 OF = false; +271 OF = false; 272 run( 273 "== code 0x1\n" 274 // op ModR/M SIB displacement immediate @@ -346,26 +346,26 @@ if ('onhashchange' in window) { 287 :(before "End Two-Byte Opcodes Starting With 0f") 288 case 0x8c: { // jump disp32 if SF and !ZF 289 const int32_t offset = next32(); -290 if (SF != OF) { +290 if (SF != OF) { 291 trace(Callstack_depth+1, "run") << "jump " << offset << end(); -292 EIP += offset; +292 EIP += offset; 293 } 294 break; 295 } 296 case 0x72: { // jump disp32 if CF 297 const int32_t offset = next32(); -298 if (CF) { +298 if (CF) { 299 trace(Callstack_depth+1, "run") << "jump " << offset << end(); -300 EIP += offset; +300 EIP += offset; 301 } 302 break; 303 } 304 305 :(code) 306 void test_jl_disp32_fail() { -307 ZF = false; +307 ZF = false; 308 SF = false; -309 OF = false; +309 OF = false; 310 run( 311 "== code 0x1\n" 312 // op ModR/M SIB displacement immediate @@ -384,14 +384,14 @@ if ('onhashchange' in window) { 325 //:: jump if lesser or equal 326 327 :(before "End Initialize Op Names") -328 put_new(Name_0f, "8e", "jump disp32 bytes away if lesser or equal (signed), if ZF is set or SF != OF (jcc/jle/jng)"); -329 put_new(Name_0f, "86", "jump disp8 bytes away if lesser or equal (unsigned), if ZF is set or CF is set (jcc/jbe/jna)"); +328 put_new(Name_0f, "8e", "jump disp32 bytes away if lesser or equal (signed), if ZF is set or SF != OF (jcc/jle/jng)"); +329 put_new(Name_0f, "86", "jump disp8 bytes away if lesser or equal (unsigned), if ZF is set or CF is set (jcc/jbe/jna)"); 330 331 :(code) 332 void test_jle_disp32_equal() { -333 ZF = true; +333 ZF = true; 334 SF = false; -335 OF = false; +335 OF = false; 336 run( 337 "== code 0x1\n" 338 // op ModR/M SIB displacement immediate @@ -409,9 +409,9 @@ if ('onhashchange' in window) { 350 351 :(code) 352 void test_jle_disp32_lesser() { -353 ZF = false; +353 ZF = false; 354 SF = true; -355 OF = false; +355 OF = false; 356 run( 357 "== code 0x1\n" 358 // op ModR/M SIB displacement immediate @@ -430,26 +430,26 @@ if ('onhashchange' in window) { 371 :(before "End Two-Byte Opcodes Starting With 0f") 372 case 0x8e: { // jump disp32 if SF or ZF 373 const int32_t offset = next32(); -374 if (ZF || SF != OF) { +374 if (ZF || SF != OF) { 375 trace(Callstack_depth+1, "run") << "jump " << offset << end(); -376 EIP += offset; +376 EIP += offset; 377 } 378 break; 379 } 380 case 0x86: { // jump disp32 if ZF or CF 381 const int32_t offset = next32(); -382 if (ZF || CF) { +382 if (ZF || CF) { 383 trace(Callstack_depth+1, "run") << "jump " << offset << end(); -384 EIP += offset; +384 EIP += offset; 385 } 386 break; 387 } 388 389 :(code) 390 void test_jle_disp32_greater() { -391 ZF = false; +391 ZF = false; 392 SF = false; -393 OF = false; +393 OF = false; 394 run( 395 "== code 0x1\n" 396 // op ModR/M SIB displacement immediate -- cgit 1.4.1-2-gfad0