Skip to content

Commit

Permalink
Initial import from SourceForge.
Browse files Browse the repository at this point in the history
  • Loading branch information
meyerm committed Nov 10, 2015
0 parents commit c97aac9
Show file tree
Hide file tree
Showing 337 changed files with 21,228 additions and 0 deletions.
337 changes: 337 additions & 0 deletions LICENSE.md

Large diffs are not rendered by default.

54 changes: 54 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Jasmin

The Java Assembler Interpreter has been developed by 2nd term students for the [Chair of Computer Architecture](http://www.lrr.in.tum.de "LRR") at the [Technical University of Munich](http://www.tum.de "TUM"). It is designed as a learning tool for x86 assembler. While not implementing all the functionality of a modern Intel Processor, its tutorials allow you to try and understand the basic commands and structures of assembler code.


# Download

* [JAR v1.5.8](https://github.com/TUM-LRR/Jasmin/releases/download/v1.5.8/Jasmin-1.5.8.jar "v.1.5.8")


# Contact

Please use the issue tracker for bug reporting. You can reach the current maintainers via e-mail at `jasmin{at}lists.lrz.de`.


# Contributors

## Initial Development

### Programming

* Yang Guo
* Jakob Kummerow
* Kai Orend
* Stefanie Schmid

### Documentation and Tutorials

* André Aichert
* Matthias Kaiser
* Sebastian Ullherr



# License

> Jasmin - Java Assembler Interpreter
> Copyright (C) 2006-2015
> Chair of Computer Architecture at Technical University of Munich
>
> This program is free software; you can redistribute it and/or modify
> it under the terms of the GNU General Public License as published by
> the Free Software Foundation; either version 2 of the License, or
> (at your option) any later version.
>
> This program is distributed in the hope that it will be useful,
> but WITHOUT ANY WARRANTY; without even the implied warranty of
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> GNU General Public License for more details.
>
> You should have received a copy of the GNU General Public License along
> with this program; if not, write to the Free Software Foundation, Inc.,
> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 changes: 17 additions & 0 deletions help/en/AAA.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>AAA.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> AAA - ASCII Adjust After Addition<br>
<strong>Arguments:</strong> none<br>
<strong>Usage:</strong> AAA<br>
<strong>Effects:</strong> AAA should be used after a one-byte ADD instruction whose destination was the AL register: by means of examining the value in the low nibble of AL and also the auxiliary carry flag AF, it determines whether the addition has overflowed, and adjusts it (and sets the carry flag) if so. You can add long BCD strings together by doing ADD/AAA on the low digits, then doing ADC/AAA on each subsequent digit.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> CF=1 when addition has overflowed

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/AAD.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>AAD.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> AAD - ASCII Adjust AX Before Division<br>
<strong>Arguments:</strong> imm: mulitplier for AL, 10 if not specified<br>
<strong>Usage:</strong> AAD | AAD imm<br>
<strong>Effects:</strong> AAD performs the inverse operation to AAM: it multiplies AH by ten, adds it to AL, and sets AH to zero. Again, the multiplier 10 can be changed.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> none

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/AAM.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>AAM.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> AAM - ASCII Adjust AX After Multiply<br>
<strong>Arguments:</strong> imm: divisor for AL, 10 if not specified<br>
<strong>Usage:</strong> AAM | AAM imm<br>
<strong>Effects:</strong> AAM is for use after you have multiplied two decimal digits together and left the result in AL: it divides AL by ten and stores the quotient in AH, leaving the remainder in AL. The divisor 10 can be changed by specifying an operand to the instruction: a particularly handy use of this is AAM 16, causing the two nibbles in AL to be separated into AH and AL.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> none

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/AAS.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>AAS.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> AAS - ASCII Adjust AL After Subtraction<br>
<strong>Arguments:</strong> none<br>
<strong>Usage:</strong> AAS<br>
<strong>Effects:</strong> AAS works similarly to AAA, but is for use after SUB instructions rather than ADD.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> CF=1 when substraction has overflowed

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/ADC.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>ADC.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> ADC-Add with Carry<br>
<strong>Arguments:</strong> DEST: register or memory location; SRC: immediate, register or memory location; (two memory operands cannot be used in one instruction)<br>
<strong>Usage:</strong> ADC DEST,SRC<br>
<strong>Effects:</strong> DEST := DEST + SRC + CF;<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> The OF, SF, ZF, AF, CF, and PF flags are set according to the result.

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/ADD.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>ADD.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> ADD-Integer Addition<br>
<strong>Arguments:</strong> DEST: register or memory location; SRC: immediate, register or memory location; (two memory operands cannot be used)<br>
<strong>Usage:</strong> ADD DEST,SRC<br>
<strong>Effects:</strong> DEST := DEST + SRC;<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> The OF, SF, ZF, AF, CF, and PF flags are set according to the result.
<br><strong>Misc:</strong> No difference between signed and unsigned operands. OF and CF flags indicate carry in case of unsigned and signed values, SF indicates the sign in case of signed values.</div>
</body>
</html>

19 changes: 19 additions & 0 deletions help/en/AND.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>AND.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> AND - Logical and<br>
<strong>Arguments:</strong> DEST: register or memory location; SRC: immediate, register or memory location; (two memory operands cannot be used in one instruction)<br>
<strong>Usage:</strong> AND DEST,SRC<br>
<strong>Effects:</strong> DEST := DEST and SRC
Performs bitwise and of DEST and SRC
<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> OF, ZF, SF, ZF, PF

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/BSF.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>BSF.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> BSF - Bit Scan<br>
<strong>Arguments:</strong> DEST: register (16 or 32 bit); SRC = register/memory (16 or 32 bit)<br>
<strong>Usage:</strong> BSF DEST,SRC<br>
<strong>Effects:</strong> BSF searches for the least significant set bit in its source (second) operand, and if it finds one, stores the index in its destination (first) operand. If no set bit is found, the contents of the destination operand are undefined. If the source operand is zero, the zero flag is set.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> ZF=1 if SRC = 0

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/BSR.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>BSR.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> BSR - Bit Scan<br>
<strong>Arguments:</strong> DEST: register (16 or 32 bit); SRC = register/memory (16 or 32 bit)<br>
<strong>Usage:</strong> BSR DEST,SRC<br>
<strong>Effects:</strong> BSR searches for the most significant set bit in its source (second) operand, and if it finds one, stores the index in its destination (first) operand. If no set bit is found, the contents of the destination operand are undefined. If the source operand is zero, the zero flag is set.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> ZF=1 if SRC = 0

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/BSWAP.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>BSWAP.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> BSWAP - Byteswap<br>
<strong>Arguments:</strong> REG: register (32 bit)<br>
<strong>Usage:</strong> BSWAP REG<br>
<strong>Effects:</strong> BSWAP swaps the order of the four bytes of a 32-bit register: bits 0-7 exchange places with bits 24-31, and bits 8-15 swap with bits 16-23. There is no explicit 16-bit equivalent: to byte-swap AX, BX, CX or DX, XCHG can be used.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> none
<br><strong>Misc:</strong> When BSWAP is used with a 16-bit register, the result is undefined.</div>
</body>
</html>

17 changes: 17 additions & 0 deletions help/en/BT.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>BT.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> BT - Bit Test<br>
<strong>Arguments:</strong> SRC: register; INDEX: index of a bit in SRC<br>
<strong>Usage:</strong> BT SRC,INDEX<br>
<strong>Effects:</strong> Tests one bit of its first operand, whose index is given by the second operand, and stores the value of that bit into the carry flag. Bit indices are from 0 (least significant) to 15 or 31 (most significant).<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> CF=bit with given index

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/BTC.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>BTC.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> BTC - Bit Test<br>
<strong>Arguments:</strong> SRC: register; INDEX: index of a bit in SRC<br>
<strong>Usage:</strong> BTC SRC,INDEX<br>
<strong>Effects:</strong> Tests one bit of its first operand, whose index is given by the second operand, and stores the value of that bit into the carry flag. Bit indices are from 0 (least significant) to 15 or 31 (most significant). BTC also complements the bit in the first operand.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> CF=bit with given index

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/BTR.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>BTR.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> BTR - Bit Test<br>
<strong>Arguments:</strong> SRC: register; INDEX: index of a bit in SRC<br>
<strong>Usage:</strong> BTR SRC,INDEX<br>
<strong>Effects:</strong> Tests one bit of its first operand, whose index is given by the second operand, and stores the value of that bit into the carry flag. Bit indices are from 0 (least significant) to 15 or 31 (most significant). BTR also resets (clears) the bit in the operand itself.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> CF=bit with given index

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/BTS.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>BTS.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> BTS - Bit Test<br>
<strong>Arguments:</strong> SRC: register; INDEX: index of a bit in SRC<br>
<strong>Usage:</strong> BTS SRC,INDEX<br>
<strong>Effects:</strong> Tests one bit of its first operand, whose index is given by the second operand, and stores the value of that bit into the carry flag. Bit indices are from 0 (least significant) to 15 or 31 (most significant). BTS also sets the bit in the operand itself.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> CF=bit with given index

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/CALL.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>CALL.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> CALL-Call Procedure<br>
<strong>Arguments:</strong> DEST (target): Adress of the first command of the called procedure; can be an immediate value, a general purpose register or a memory location<br>
<strong>Usage:</strong> CALL DEST<br>
<strong>Effects:</strong> Actual value of the instruction counter is saved on the stack and the instruction counter is set to the target adresse in order to go on with the called procedure.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> none
<br><strong>Misc:</strong> Usually there is a RET command in the procedure to return to the command after the call command.</div>
</body>
</html>

17 changes: 17 additions & 0 deletions help/en/CBW.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>CBW.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> CBW - Sign extension<br>
<strong>Arguments:</strong> none<br>
<strong>Usage:</strong> CBW<br>
<strong>Effects:</strong> CBW extends AL into AX by repeating the top bit of AL in every bit of AH<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> none

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/CDQ.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>CDQ.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> CDQ - Sign Extension<br>
<strong>Arguments:</strong> none<br>
<strong>Usage:</strong> CDQ<br>
<strong>Effects:</strong> CDQ extends EAX into EDX:EAX by repeating the top bit of EAX.<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> none

</body>
</html>

17 changes: 17 additions & 0 deletions help/en/CLC.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>CLC.htm</title>
</head>
<body>
<div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;">
<strong>Command:</strong> CLC - Clear Carry Flag<br>
<strong>Arguments:</strong> none<br>
<strong>Usage:</strong> CLC<br>
<strong>Effects:</strong> CLC clears the carry flag<br>
<strong>Flags&nbsp;to&nbsp;be&nbsp;set:</strong> CF=0

</body>
</html>

Loading

0 comments on commit c97aac9

Please sign in to comment.