| Index | Manual | Download | Source | Macros | Embedded word Case ins.
Sitemap | Links | Forum | Tests | Projects

# Test t3031: 16bit MOFFS addressing mode

Description
  Copying between memory|immediate and accumulator in special MOFFS addressing mode with opcodes A0..A3, B0..BF.
Tested procedures
  IigMOV

Source & expected listing t3031.htm.lst
  `| | EUROASM LIST=ON, DUMP=ON, DUMPWIDTH=24,AUTOALIGN=OFF | |t3031: PROGRAM FORMAT=BIN, MODEL=FLAT, WIDTH=16,\ | | IMAGEBASE=0x3000, LISTMAP=ON, LISTGLOBALS=ON |[CODE] |[CODE] SEGMENT |0000:90 | ALIGN OWORD,BYTE ; Intentional disalignment. |0001:22222222 |NearDword:: DD 0x22222222 |0005:3333 |NearWord:: DW 0x3333 |0007:44 |NearByte:: DB 0x44 |0008:B044 | MOV AL,0x44 |000A:B83333 | MOV AX,0x3333 |000D:66B822222222 | MOV EAX,0x22222222 |0013:B144 | MOV CL,0x44 |0015:B93333 | MOV CX,0x3333 |0018:66B922222222 | MOV ECX,0x22222222 |001E:66B9FFFFFFFF | MOV ECX,0xFFFFFFFF |0024:66B9FFFFFFFF | MOV ECX,-1 |002A:A02211 | MOV AL,[1122h] |002D:A0[0700] | MOV AL,[NearByte] |0030:A0[0700] | MOV AL,[FarByte] |0033:A12211 | MOV AX,[1122h] |0036:A1[0500] | MOV AX,[NearWord] |0039:A1[0500] | MOV AX,[FarWord] |003C:66A12211 | MOV EAX,[1122h] |0040:66A1[0100] | MOV EAX,[NearDword] |0044:66A1[0100] | MOV EAX,[FarDword] |0048:A22211 | MOV [1122h],AL |004B:A2[0700] | MOV [NearByte],AL |004E:A2[0700] | MOV [FarByte],AL |0051:A32211 | MOV [1122h],AX |0054:A3[0500] | MOV [NearWord],AX |0057:A3[0500] | MOV [FarWord],AX |005A:66A32211 | MOV [1122h],EAX |005E:66A3[0100] | MOV [NearDword],EAX |0062:66A3[0100] | MOV [FarDword],EAX |0066: | |[DATA] |[DATA] SEGMENT |0000:00 | ALIGN QWORD,BYTE ; Intentional disalignment. |0001:EEEEEEEE |FarDword:: DD 0xEEEEEEEE |0005:DDDD |FarWord:: DW 0xDDDD |0007:CC |FarByte:: DB 0xCC | | ENDPROGRAM t3031: | **** ListMap "t3031.bin",model=FLAT,groups=0,segments=2,entry=,stack= | [CODE],FA=00000000h,VA=00003000h,size=00000066h=102,width=16,align=0010h,purpose=CODE | [DATA],FA=00000070h,VA=00003070h,size=00000008h=8,width=16,align=0010h,purpose=DATA | **** ListGlobals "t3031.bin",Global=0,Public=6,Extern=0,eXport=0,Import=0 | FarByte,[DATA]:00000007h,VA=00003077h,scope='P' | FarDword,[DATA]:00000001h,VA=00003071h,scope='P' | FarWord,[DATA]:00000005h,VA=00003075h,scope='P' | NearByte,[CODE]:00000007h,VA=00003007h,scope='P' | NearDword,[CODE]:00000001h,VA=00003001h,scope='P' | NearWord,[CODE]:00000005h,VA=00003005h,scope='P'`

Expected messages t3031.out
  `I0180 Assembling source file "t3031.htm". I0270 Assembling source "t3031". I0310 Assembling source pass 1. I0330 Assembling source pass 2 - final. I0470 Assembling program "t3031". "t3031.htm"{52} I0510 Assembling program pass 1. "t3031.htm"{52} I0510 Assembling program pass 2. "t3031.htm"{52} I0530 Assembling program pass 3 - final. "t3031.htm"{52} I0660 16bit FLAT BIN file "t3031.bin" created, size=120. "t3031.htm"{91} I0650 Program "t3031" assembled in 3 passes with errorlevel 0. "t3031.htm"{91} I0750 Source "t3031" (132 lines) assembled in 2 passes with errorlevel 0. I0860 Listing file "t3031.htm.lst" created, size=2654. I0990 EuroAssembler terminated with errorlevel 0.`

Expected output file t3031. bin

      0000: 90 22 22 22 22 33 33 44 B0 44 B8 33 33 66 B8 22  ¤""""33D¤D¤33f¤"
      0010: 22 22 22 B1 44 B9 33 33 66 B9 22 22 22 22 66 B9  """¤D¤33f¤""""f¤
      0020: FF FF FF FF 66 B9 FF FF FF FF A0 22 11 A0 07 30  ¤¤¤¤f¤¤¤¤¤¤"·¤·0
      0030: A0 77 30 A1 22 11 A1 05 30 A1 75 30 66 A1 22 11  ¤w0¤"·¤·0¤u0f¤"·
      0040: 66 A1 01 30 66 A1 71 30 A2 22 11 A2 07 30 A2 77  f¤·0f¤q0¤"·¤·0¤w
      0050: 30 A3 22 11 A3 05 30 A3 75 30 66 A3 22 11 66 A3  0¤"·¤·0¤u0f¤"·f¤
      0060: 01 30 66 A3 71 30 00 00 00 00 00 00 00 00 00 00  ·0f¤q0°°°°°°°°°°
      0070: 00 EE EE EE EE DD DD CC                          °¤¤¤¤¤¤¤

▲Back to the top▲