내 코드가 8086 & 80286 프로세서에 비해 너무 느립니다. 따라서 실제 모드 코드에 32 비트 레지스터와 명령어를 사용하기로 결정했습니다. 내가 할 수 있어야 할 필요가있는 것은 66h로 접두어로되어 있지만, 어셈블리 파일의 맨 위에 .386 지시문을 포함시키지 않으면 386 개의 레지스터가 MASM에서 허용되지 않는다는 것을 알고 있습니다. . 이
thx 도움이 내 질문에 대한 도끼 값 아래에서받은? mov al,22h
mov cl,0fdh
imul cl
실기 결과 : ff9a I 예상 내용 : 제 수가 너무 22H 인 00:9a (이진 곱하여)의 34 진수는 이미 부호 번째 숫자 바이너리에서 fd입니다 11111101 처럼 그것의 서명처럼 그 의미 -3 그래서 22 * -3 그 66; 서
먼저 값을 정수 레지스터로 이동하고 호출 된 내용을 모른 다음 xmm 레지스터에 값을 이동하여 값을 xmm 레지스터로 이동하는 유일한 방법입니다. mov [eax], (float)1000 ; store to memory
movss xmm1,[eax] ; reload
또는 mov eax, 1000 ; move-immediate integer
c
VMM을 작성 중이며 VMX 비 루트 모드에서 실행중인 게스트 OS가 x2APIC의 레지스터에 대한 가상 액세스를 지원하려고합니다. 게스트 OS 내에서 로컬 APIC ID를 읽는 것과 같은 간단한 작업으로 시작하고 싶습니다. 내 VMM에서이 지원을 추가하려고했지만 읽은 값이 잘못된 것 같습니다. 불행히도 가상 APIC 페이지에 대한 온라인 정보가 많지 않습
나는 다음과 같은 코드를 가지고 내가 59 mov dl,59 내가 키보드에서 읽어 배열의 요소의 합을 계산해야 printSeparator macro
mov ah,02h
mov dl,59
int 21h
endm
에 무엇을 나타내는 지 모르는 내가 위의 관련 솔루션을 보았다 코드 스 니펫
REAL4 데이터 형식을 사용하여 배열에 부동 소수점 숫자를 저장하려고합니다. 다음에 대한 올바른 지침은 무엇입니까? 사용자로부터 입력을 받고 배열로 저장 하시겠습니까? 예를 들어 REAL4 번호를 사용합니다. mov array[ebx], sval(input())
플로트 값을 인쇄하십시오. 유용한 MASM real4 지시 문서에 대한 링크가있는 경우 또
NASM 어셈블리 코드에서 scanf와의 몇 가지 특별한 동작을 감지합니다. mov rdi, fmt
mov rsi, r14
call _scanf
및 fmt이 같은 data 섹션에 선언 mov rdi, fmt
mov rsi, r15
call _scanf
: : 첫 번째 scanf 전에 section .data
fmt: db "%d", 0
난과 같이 인라인 어셈블리를 사용하여 C에서 동작 왼쪽 회전을 작성하려고하고 회전 : (바이트 부호없는 문자로 typedefed된다) byte rotate_left(byte a) {
__asm__("rol %0, $1": "=a" (a) : "a" (a));
return a;
}
. 이 오류 문제가 여기에 무엇 /tmp/ccKYcEH
OS는 실제로 프로세스의 주소 공간을 페이지로 언제 분할합니까? 프로그램을 작성하여 저장한다고 가정합니다. OS가 실행되지 않고 하드 디스크에 유휴 상태로 있어도 프로그램의 주소 공간을 페이지로 나눌 수 있습니까? 크기가 구성 될 수있는 하드 디스크에있는 스왑 공간 또는 페이지 파일이라는 부분이 있으며 실제 메모리에서 하드 디스크로 스왑 된 사용되지 않는
방금 x86 어셈블리를 배우기 시작했고 모든 아스키 문자와 줄 바꿈을 표준 출력으로 인쇄하는 간단한 프로그램을 작성하려고했습니다. 줄 바꿈을 제외하고 예상대로 모든 것을 인쇄하기 때문에 그 이유를 알 수 없습니다. 64 비트 우분투 운영 체제에서 nasm으로 컴파일했습니다. section .data
curr db ' '
section .text