tag:blogger.com,1999:blog-4444236261391912432023-11-15T06:51:01.351-08:00Microprocessor InstructionsLionelhttp://www.blogger.com/profile/11329883633967646018noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-444423626139191243.post-40485551950215782422008-08-23T21:30:00.000-07:002008-08-23T21:32:24.138-07:00Ascending Order8086 instruction using debugger for arranging Numbers in a memoery block in ascending Order ...<br /><br />-A<br />150F:0100 MOV CH, 02<br />150F:0102 MOV CL, 02<br />150F:0104 MOV SI, 1000<br />150F:0107 MOV AX, [SI]<br />150F:0109 CMP AL, AH<br />150F:010B JB 0111<br />150F:010D XCHG AL, AH<br />150F:010F MOV [SI], AX<br />150F:0111 INC SI<br />150F:0112 DEC CL<br />150F:0114 JNZ 0107<br />150F:0116 DEC CH<br />150F:0118 JNZ 0102<br />150F:011A INT 3<br />150F:011B<br />-<br />-U<br />150F:0100 B502 MOV CH,02<br />150F:0102 B102 MOV CL,02<br />150F:0104 BE0010 MOV SI,1000<br />150F:0107 8B04 MOV AX,[SI]<br />150F:0109 38E0 CMP AL,AH<br />150F:010B 7204 JB 0111<br />150F:010D 86C4 XCHG AL,AH<br />150F:010F 8904 MOV [SI],AX<br />150F:0111 46 INC SI<br />150F:0112 FEC9 DEC CL<br />150F:0114 75F1 JNZ 0107<br />150F:0116 FECD DEC CH<br />150F:0118 75E8 JNZ 0102<br />150F:011A CC INT 3<br />-<br />-E 1000<br />150F:1000 00.14 00.53 00.04<br />-T<br /><br />AX=0000 BX=0000 CX=0200 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0102 NV UP EI PL NZ NA PO NC<br />150F:0102 B102 MOV CL,02<br />-T<br /><br />AX=0000 BX=0000 CX=0202 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0104 NV UP EI PL NZ NA PO NC<br />150F:0104 BE0010 MOV SI,1000<br />-T<br /><br />AX=0000 BX=0000 CX=0202 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0107 NV UP EI PL NZ NA PO NC<br />150F:0107 8B04 MOV AX,[SI] DS:1000=5314<br />-T<br /><br />AX=5314 BX=0000 CX=0202 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0109 NV UP EI PL NZ NA PO NC<br />150F:0109 38E0 CMP AL,AH<br />-T<br /><br />AX=5314 BX=0000 CX=0202 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=010B NV UP EI NG NZ NA PO CY<br />150F:010B 7204 JB 0111<br />-T<br /><br />AX=5314 BX=0000 CX=0202 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0111 NV UP EI NG NZ NA PO CY<br />150F:0111 46 INC SI<br />-T<br /><br />AX=5314 BX=0000 CX=0202 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0112 NV UP EI PL NZ NA PO CY<br />150F:0112 FEC9 DEC CL<br />-T<br /><br />AX=5314 BX=0000 CX=0201 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0114 NV UP EI PL NZ NA PO CY<br />150F:0114 75F1 JNZ 0107<br />-T<br /><br />AX=5314 BX=0000 CX=0201 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0107 NV UP EI PL NZ NA PO CY<br />150F:0107 8B04 MOV AX,[SI] DS:1001=0453<br />-T<br /><br />AX=0453 BX=0000 CX=0201 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0109 NV UP EI PL NZ NA PO CY<br />150F:0109 38E0 CMP AL,AH<br />-T<br /><br />AX=0453 BX=0000 CX=0201 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=010B NV UP EI PL NZ AC PO NC<br />150F:010B 7204 JB 0111<br />-T<br /><br />AX=0453 BX=0000 CX=0201 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=010D NV UP EI PL NZ AC PO NC<br />150F:010D 86C4 XCHG AL,AH<br />-T<br /><br />AX=5304 BX=0000 CX=0201 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=010F NV UP EI PL NZ AC PO NC<br />150F:010F 8904 MOV [SI],AX DS:1001=0453<br />-T<br /><br />AX=5304 BX=0000 CX=0201 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0111 NV UP EI PL NZ AC PO NC<br />150F:0111 46 INC SI<br />-T<br /><br />AX=5304 BX=0000 CX=0201 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0112 NV UP EI PL NZ NA PO NC<br />150F:0112 FEC9 DEC CL<br />-T<br /><br />AX=5304 BX=0000 CX=0200 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0114 NV UP EI PL ZR NA PE NC<br />150F:0114 75F1 JNZ 0107<br />-T<br /><br />AX=5304 BX=0000 CX=0200 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0116 NV UP EI PL ZR NA PE NC<br />150F:0116 FECD DEC CH<br />-T<br /><br />AX=5304 BX=0000 CX=0100 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0118 NV UP EI PL NZ NA PO NC<br />150F:0118 75E8 JNZ 0102<br />-T<br /><br />AX=5304 BX=0000 CX=0100 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0102 NV UP EI PL NZ NA PO NC<br />150F:0102 B102 MOV CL,02<br />-T<br /><br />AX=5304 BX=0000 CX=0102 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0104 NV UP EI PL NZ NA PO NC<br />150F:0104 BE0010 MOV SI,1000<br />-T<br /><br />AX=5304 BX=0000 CX=0102 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0107 NV UP EI PL NZ NA PO NC<br />150F:0107 8B04 MOV AX,[SI] DS:1000=0414<br />-T<br /><br />AX=0414 BX=0000 CX=0102 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0109 NV UP EI PL NZ NA PO NC<br />150F:0109 38E0 CMP AL,AH<br />-<br />AX=0414 BX=0000 CX=0102 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=010B NV UP EI PL NZ NA PO NC<br />150F:010B 7204 JB 0111<br />-T<br /><br />AX=0414 BX=0000 CX=0102 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=010D NV UP EI PL NZ NA PO NC<br />150F:010D 86C4 XCHG AL,AH<br />-T<br /><br />AX=1404 BX=0000 CX=0102 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=010F NV UP EI PL NZ NA PO NC<br />150F:010F 8904 MOV [SI],AX DS:1000=0414<br />-T<br /><br />AX=1404 BX=0000 CX=0102 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0111 NV UP EI PL NZ NA PO NC<br />150F:0111 46 INC SI<br />-T<br /><br />AX=1404 BX=0000 CX=0102 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0112 NV UP EI PL NZ NA PO NC<br />150F:0112 FEC9 DEC CL<br />-T<br /><br />AX=1404 BX=0000 CX=0101 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0114 NV UP EI PL NZ NA PO NC<br />150F:0114 75F1 JNZ 0107<br />-T<br /><br />AX=1404 BX=0000 CX=0101 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0107 NV UP EI PL NZ NA PO NC<br />150F:0107 8B04 MOV AX,[SI] DS:1001=5314<br />-T<br /><br />AX=5314 BX=0000 CX=0101 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0109 NV UP EI PL NZ NA PO NC<br />150F:0109 38E0 CMP AL,AH<br />-T<br /><br />AX=5314 BX=0000 CX=0101 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=010B NV UP EI NG NZ NA PO CY<br />150F:010B 7204 JB 0111<br />-T<br /><br />AX=5314 BX=0000 CX=0101 DX=0000 SP=FFEE BP=0000 SI=1001 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0111 NV UP EI NG NZ NA PO CY<br />150F:0111 46 INC SI<br />-T<br /><br />AX=5314 BX=0000 CX=0101 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0112 NV UP EI PL NZ NA PO CY<br />150F:0112 FEC9 DEC CL<br />-T<br /><br />AX=5314 BX=0000 CX=0100 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0114 NV UP EI PL ZR NA PE CY<br />150F:0114 75F1 JNZ 0107<br />-T<br /><br />AX=5314 BX=0000 CX=0100 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0116 NV UP EI PL ZR NA PE CY<br />150F:0116 FECD DEC CH<br />-T<br /><br />AX=5314 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=0118 NV UP EI PL ZR NA PE CY<br />150F:0118 75E8 JNZ 0102<br />-T<br /><br />AX=5314 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1002 DI=0000<br />DS=150F ES=150F SS=150F CS=150F IP=011A NV UP EI PL ZR NA PE CY<br />150F:011A CC INT 3<br />-E 1000<br />150F:1000 04. 14. 53.Lionelhttp://www.blogger.com/profile/11329883633967646018noreply@blogger.com0tag:blogger.com,1999:blog-444423626139191243.post-5529002452593703792008-06-15T22:09:00.000-07:002008-08-23T21:32:24.139-07:0016 Bit number divided by an 8 bit numberThe given program displays the set of instructions for division of a 8 bit number from a 16 bit number. <br /><br /><strong>div Unsigned divide</strong><br /><em> Syntax:</em> div op8<br /> div op16<br /><em> op8:</em> 8-bit register or memory<br /><em> op16:</em> 16-bit register or memory<br /><em> Action:</em> If operand is op8, unsigned AL = AX / op8 and AH = AX % op8<br /> If operand is op16, unsigned AX = DX::AX / op16 and DX = DX::AX % op16<br /><em> Flags Affected:</em> OF=?, SF=?, ZF=?, AF=?, PF=?, CF=?<br /><em> Notes:</em> Performs both division and modulus operations in one instruction.<br /><br /><br />-A<br />1376:0100 MOV AX, 1234<br />1376:0103 MOV BX, 36<br />1376:0106 DIV BX<br />1376:0108 MOV [2000], AX<br />1376:010B HLT<br />1376:010C<br />-T<br /><br />AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0103 NV UP EI PL NZ NA PO NC<br />1376:0103 BB3600 MOV BX,0036<br />-T<br /><br />AX=1234 BX=0036 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0106 NV UP EI PL NZ NA PO NC<br />1376:0106 F7F3 DIV BX<br />-T<br /><br />AX=0056 BX=0036 CX=0000 DX=0010 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0108 NV UP EI PL NZ NA PO NC<br />1376:0108 A30020 MOV [2000],AX DS:2000=0000<br />-T<br /><br />AX=0056 BX=0036 CX=0000 DX=0010 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=010B NV UP EI PL NZ NA PO NC<br />1376:010B F4 HLTLionelhttp://www.blogger.com/profile/11329883633967646018noreply@blogger.com0tag:blogger.com,1999:blog-444423626139191243.post-20893838399883638092008-06-15T22:06:00.000-07:002008-08-23T21:32:24.140-07:0016 Bit MultiplicationThe given program displays the set of instructions for a 16 bit subtraction of two numbers.<br /><br /><strong>mul - Unsigned multiply</strong><br /><em>Syntax:</em> mul op8<br />mul op16<br /><em>op8:</em> 8-bit register or memory<br /><em>op16:</em> 16-bit register or memory<br /><em>Action: </em>If operand is op8, unsigned AX = AL * op8<br />If operand is op16, unsigned DX::AX = AX * op16<br /><em>Flags Affected:</em> OF, SF=?, ZF=?, AF=?, PF=?, CF<br /><br />Program Instructions<br />-A<br />1376:0102 MOV AX, 4321<br />1376:0105 MOV BX, 1234<br />1376:0108 MUL BX<br />1376:010A MOV [2000], AX<br />1376:010D HLT<br />1376:010E<br />-T<br /><br />AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0102 NV UP EI PL NZ NA PO NC<br />1376:0102 B82143 MOV AX,4321<br />-T<br /><br />AX=4321 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0105 NV UP EI PL NZ NA PO NC<br />1376:0105 BB3412 MOV BX,1234<br />-T<br /><br />AX=4321 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0108 NV UP EI PL NZ NA PO NC<br />1376:0108 F7E3 MUL BX<br />-T<br /><br />AX=F4B4 BX=1234 CX=0000 DX=04C5 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=010A OV UP EI NG NZ NA PE CY<br />1376:010A A30020 MOV [2000],AX DS:2000=0000Lionelhttp://www.blogger.com/profile/11329883633967646018noreply@blogger.com0tag:blogger.com,1999:blog-444423626139191243.post-51828464210805551952008-06-15T22:04:00.000-07:002008-08-23T21:32:24.140-07:0016 Bit SubtractionThe given program displays the set of instructions for a 16 bit subtraction of two numbers.<br /><br /><strong>sub - Subtract two numbers</strong><br /><em>Syntax:</em> sub dest, src<br /><em>dest:</em> regsiter or memory<br /><em>src:</em> register, memory, or immediate<br /><em>Action:</em> dest = dest - src<br /><em>Flags Affected:</em> OF, SF, ZF, AF, PF, CF<br /><em>Notes: </em>Works for both signed and unsigned numbers.<br /><br /><br />-A<br />1376:0100 MOV AX, 4321<br />1376:0103 MOV BX, 1234<br />1376:0106 SUB AX, BX<br />1376:0108 MOV [2000], AX<br />1376:010B HLT<br />1376:010C<br />-T<br /><br />AX=4321 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0103 NV UP EI PL NZ NA PO NC<br />1376:0103 BB3412 MOV BX,1234<br />-T<br /><br />AX=4321 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0106 NV UP EI PL NZ NA PO NC<br />1376:0106 29D8 SUB AX,BX<br />-T<br /><br />AX=30ED BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0108 NV UP EI PL NZ AC PE NC<br />1376:0108 A30020 MOV [2000],AX DS:2000=0000<br />-T<br /><br />AX=30ED BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=010B NV UP EI PL NZ AC PE NC<br />1376:010B F4 HLTLionelhttp://www.blogger.com/profile/11329883633967646018noreply@blogger.com0tag:blogger.com,1999:blog-444423626139191243.post-24957285760978985572008-06-15T21:56:00.000-07:002008-08-23T21:32:24.141-07:0016 Bit AdditionThe given program displays the set of instructions for a 16 bit addition of two numbers.<br /><br /><strong>mov - Move data<br /></strong><em>Syntax:</em> mov dest, src<br /><em>dest:</em> register or memory<br /><em>src:</em> register, memory, or immediate<br /><em>Action:</em> dest = src<br /><em>Flags Affected:</em> None<br /><br /><strong>add - Add two numbers</strong><br /><em>Syntax:</em> add dest, src<br /><em>dest:</em> register or memory<br /><em>src:</em> register, memory, or immediate<br /><em>Action: </em>dest = dest + src<br /><em>Flags Affected:</em> OF, SF, ZF, AF, PF, CF<br /><em>Notes:</em> Works for both signed and unsigned numbers.<br /><br />program : <br />-A<br />1376:0100 MOV AX,1234<br />1376:0103 MOV BX,4321<br />1376:0106 ADD AX,BX<br />1376:0108 MOV [2000], AX<br />1376:010B HLT<br />1376:010C<br />-T<br /><br />AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0103 NV UP EI PL NZ NA PO NC<br />1376:0103 BB2143 MOV BX,4321<br />-T<br /><br />AX=1234 BX=4321 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0106 NV UP EI PL NZ NA PO NC<br />1376:0106 01D8 ADD AX,BX<br />-T<br /><br />AX=5555 BX=4321 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=0108 NV UP EI PL NZ NA PE NC<br />1376:0108 A30020 MOV [2000],AX DS:2000=0000<br />-T<br /><br />AX=5555 BX=4321 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000<br />DS=1376 ES=1376 SS=1376 CS=1376 IP=010B NV UP EI PL NZ NA PE NC<br />1376:010B F4 HLTLionelhttp://www.blogger.com/profile/11329883633967646018noreply@blogger.com0