I am new to assembly. I am trying to do this:
SECTION .data
SECTION .bss
SECTION .text
    global _start
_start:
    nop
    mov rax, 067FEh
    mov bx, ax
    mov cl, bh
    mov ch, bl
    nop
Everytime I run this , I get a segmentation fault. I used gdb to test where it went wrong. It appeared that every time after mov rax, 067FEh, it said the program received SIGSEGV. I tried replacing rax with eax or ax, but it still gave the fault. When I tried to look up the value in rax, it was 067FEh. I can't figure out what happened there. Can anybody help?
 
     
    