Test t3055:
Machine instructions SHR SHRB SHRW SHRD in 16bit mode
- Tested procedures
-
IigSHR
IigSHRB
IigSHRW
IigSHRD
- Source & expected listing
t3055.htm.lst
-
| | EUROASM LIST=ON,DUMP=ON,DUMPWIDTH=36,CPU=386
| |t3055 PROGRAM FORMAT=BIN,IMAGEBASE=0,LISTMAP=OFF,LISTGLOBALS=OFF
|[Mode16] |[Mode16] SEGMENT WIDTH=16,PURPOSE=CODE
|0000:D2E8 | SHR AL,CL
|0002:D0E8 | SHR AL
|0004:D0E8 | SHR AL,1
|0006:C0E801 | SHR AL,1,CODE=LONG
|0009:C0E801 | SHR AL,1,IMM=BYTE
|000C:C0E802 | SHR AL,2
|000F:D22E[2601] | SHR [MemByte],CL
|0013:D02E[2601] | SHR [MemByte]
|0017:D02E[2601] | SHR [MemByte],1
|001B:C02E[2601]01 | SHR [MemByte],1,CODE=LONG
|0020:C02E[2601]01 | SHR [MemByte],1,IMM=BYTE
|0025:C02E[2601]02 | SHR [MemByte],2
|002A:C02D01 | SHR [DI],1,DATA=BYTE,IMM=BYTE
|002D:67D02F | SHR [EDI],1,DATA=BYTE
|0030:D3E8 | SHR AX,CL
|0032:D1E8 | SHR AX
|0034:D1E8 | SHR AX,1
|0036:C1E801 | SHR AX,1,CODE=LONG
|0039:C1E801 | SHR AX,1,IMM=BYTE
|003C:C1E802 | SHR AX,2
|003F:D32E[2401] | SHR [MemWord],CL
|0043:D12E[2401] | SHR [MemWord]
|0047:D12E[2401] | SHR [MemWord],1
|004B:C12E[2401]01 | SHR [MemWord],1,CODE=LONG
|0050:C12E[2401]01 | SHR [MemWord],1,IMM=BYTE
|0055:C12E[2401]02 | SHR [MemWord],2
|005A:C12D01 | SHR [DI],1,DATA=WORD,IMM=BYTE
|005D:67D12F | SHR [EDI],1,DATA=WORD
|0060:66D3E8 | SHR EAX,CL
|0063:66D1E8 | SHR EAX
|0066:66D1E8 | SHR EAX,1
|0069:66C1E801 | SHR EAX,1,CODE=LONG
|006D:66C1E801 | SHR EAX,1,IMM=BYTE
|0071:66C1E802 | SHR EAX,2
|0075:66D32E[2001] | SHR [MemDword],CL
|007A:66D12E[2001] | SHR [MemDword]
|007F:66D12E[2001] | SHR [MemDword],1
|0084:66C12E[2001]01 | SHR [MemDword],1,CODE=LONG
|008A:66C12E[2001]01 | SHR [MemDword],1,IMM=BYTE
|0090:66C12E[2001]02 | SHR [MemDword],2
|0096:66C12D01 | SHR [DI],1,DATA=DWORD,IMM=BYTE
|009A:6667D12F | SHR [EDI],1,DATA=DWORD
|009E:D22D | SHRB [DI],CL
|00A0:D32D | SHRW [DI],CL
|00A2:66D32D | SHRD [DI],CL
|00A5:66D3E8 | SHRD EAX,CL
|00A8:66D1E8 | SHRD EAX
|00AB:66D1E8 | SHRD EAX,1
|00AE:66C1E801 | SHRD EAX,1,IMM=BYTE
|00B2:66C1E802 | SHRD EAX,2
|00B6: | ; Following instructions are double precision shift.
|00B6:0FADD0 | SHRD AX,DX,CL
|00B9:0FACD001 | SHRD AX,DX
|00BD:0FACD001 | SHRD AX,DX,1
|00C1:0FACD002 | SHRD AX,DX,2
|00C5:0FAD16[2401] | SHRD [MemWord],DX,CL
|00CA:0FAC16[2401]01 | SHRD [MemWord],DX
|00D0:0FAC16[2401]01 | SHRD [MemWord],DX,1
|00D6:0FAC16[2401]03 | SHRD [MemWord],DX,3
|00DC:0FAD15 | SHRD [DI],DX,CL
|00DF:0FAC1503 | SHRD [DI],DX,3
|00E3:660FADD0 | SHRD EAX,EDX,CL
|00E7:660FACD001 | SHRD EAX,EDX
|00EC:660FACD001 | SHRD EAX,EDX,1
|00F1:660FACD002 | SHRD EAX,EDX,2
|00F6:660FAD16[2001] | SHRD [MemDword],EDX,CL
|00FC:660FAC16[2001]01 | SHRD [MemDword],EDX
|0103:660FAC16[2001]01 | SHRD [MemDword],EDX,1
|010A:660FAC16[2001]02 | SHRD [MemDword],EDX,2
|0111:660FAD15 | SHRD [DI],EDX,CL
|0115:660FAC1503 | SHRD [DI],EDX,3
|011A:87C987D287DB | ALIGN QWORD
|0120:00000000 |MemDword D D
|0124:0000 |MemWord D W
|0126:00 |MemByte D B
| |ENDPROGRAM t3055
- Expected messages
t3055.out
I0180 Assembling source file "t3055.htm".
I0270 Assembling source "t3055".
I0310 Assembling source pass 1.
I0330 Assembling source pass 2 - final.
I0470 Assembling program "t3055". "t3055.htm"{58}
I0510 Assembling program pass 1. "t3055.htm"{58}
I0510 Assembling program pass 2. "t3055.htm"{58}
I0510 Assembling program pass 3. "t3055.htm"{58}
I0530 Assembling program pass 4 - final. "t3055.htm"{58}
I0660 16bit TINY BIN file "t3055.bin" created, size=295. "t3055.htm"{135}
I0650 Program "t3055" assembled in 4 passes with errorlevel 0. "t3055.htm"{135}
I0750 Source "t3055" (155 lines) assembled in 2 passes with errorlevel 0.
I0860 Listing file "t3055.htm.lst" created, size=4436.
I0990 EuroAssembler terminated with errorlevel 0.
▲Back to the top▲