I tried implementing aes128 encryption using assembly language, my final goal is to find out the final value. when debugging (using single stepping), the debugger stops at the 0x8048074 address.
Here the code :
global _start
section .text
_start:
pxor    xmm2, xmm2
pxor    xmm3, xmm3
mov     bx, 0x36e5
mov     ah, 0x73
roundloop:
shr     ax, 7
div     bl
mov     byte [sdfsdf+5], ah
sdfsdf:
aeskeygenassist xmm1, xmm0, 0x45
pshufd  xmm1, xmm1, 0xff
shuffle:
shufps  xmm2, xmm0, 0x10
pxor    xmm0, xmm2
xor     byte [shuffle+3], 0x9c
js      short shuffle
pxor    xmm0, xmm1
cmp     ah, bh
jz      short lastround
aesenc  xmm3, xmm0
jmp     short roundloop
lastround:
aesenclast xmm3, xmm0
ret
Debugger stuck at here, I cannot single-stepping to 0x804807a 
[-------------------------------------code-------------------------------------]
   0x804806c <_start+12>:       mov    ah,0x73
   0x804806e <roundloop>:       shr    ax,0x7
   0x8048072 <roundloop+4>:     div    bl
=> 0x8048074 <roundloop+6>:     mov    BYTE PTR ds:0x804807f,ah
   0x804807a <sdfsdf>:  aeskeygenassist xmm1,xmm0,0x45
   0x8048080 <sdfsdf+6>:        pshufd xmm1,xmm1,0xff
   0x8048085 <shuffle>: shufps xmm2,xmm0,0x10
   0x8048089 <shuffle+4>:       pxor   xmm0,xmm2
I'm using peda plugin for GDB.
EDIT :
Sorry, I don't mention the error message, error message is Segmentation fault at this instruction mov    BYTE PTR ds:0x804807f,ah