척. 현재 어셈블리 언어의 arkane 기술을 배우고 있습니다. (Windows 8.1에서는) 대화 상자를 표시하는 프로그램을 작성했습니다. msdn 참조를 확인하고 대화 상자의 광 및 동작을 변경하는 방법을 알아 냈습니다. 반환 값이 저장되는 위치와 읽는 방법도 배웠습니다. 그래서 제 질문은 "내가 갇혀있게 도와주세요"와 같은 것이 아닙니다. 이 작은 대
MODEL SMALL
.DATA
MSG DB 0DH,0AH, ' ENTER THE STRING :-----> : $'
MSG2 DB 0DH,0AH, ' YOUR STRING IS :-----> : $'
STR1 DB 255 DUP(?)
ONE DB ?
TWO DB ?
.CODE
BEGIN:
필자는 기수가 감수보다 작을 때마다 캐리 플래그가 설정되어 있음을 알고 있지만 빌리는 필요하지만 더 자세히 설명 할 수는 없습니다. 뺄셈은 실제로 2의 보수를 추가하기 때문에 CPU가 감수가 크고 차용이 발생했다는 것을 어떻게 알 수 있습니까? 내가 생각할 수있는 유일한 점은 기수가 2의 보수로 변환 될 때마다 SUB 동안 자동으로 캐리 플래그가 설정된다는
내 루프에 문제가있어서 코드가 길어서 오류 jump destination too far : by 3 byte(s)이 발생합니다. ı 제거시 : mov edx,offset str1
call writestring
이 부분은 PROC 아래에 있으며 오류가 없습니다. 그러나 ı이 문자열 사용자가 음수를 입력해야 메시지를 보낼 수 있습니다. 내가 어떻게 할 수
그래서 엄청난 수의 답변을 발견했기 때문에 MASM을 사용하는 방법이 약 50 번 변경되었습니다. 그 중 하나는 작동하지 않습니다. 제가 알고 싶습니다. 어떻게하면 MASM에서 exitprocess와 같은 것을 호출 할 수 있습니까? 어떤 파일을 포함합니까?/어디에 있습니까? VS2015 Community Edition에 내장 된 ml.exe를 사용하고 있
어셈블리에서 한 가지 문제가 있습니다. 변수 points db 65을 만듭니다. 시작 값은 65이지만 프로그램에서이 값을 표시하려면 invoke CreateWindowEx,0,ADDR classStatic,ADDR points, WS_CHILD or WS_VISIBLE,100,100,50,50,hWnd,0,hInstance,0
을 반환합니다. 이 예에서
에 2 개 개의 float 변수를 곱 방법, 조립 사용자는 3.02로 입력을 입력하고 FPU를 사용하려면이 .data
fin dd 5.0
.code
main proc
fld fin
fmul fin ;to multiply fin with fin
fstp dword [eax] ;cannot mov result in eax
call writefl
문자열 형식을 int로 구문 분석해야하지만 코드를 변경해야하는 코드가 있습니다. 0에서 658688까지 나는 그것을 어떻게 처리해야할지 모른다. lodsd 명령이 올바른지 확인하십시오. toparse DB 128 dup(?)
mov toparse, "0"
atoi proc uses esi edx inputBuff:DWORD
mov esi, i
MASM 어셈블러에서 텍스트 파일을 열려고합니다 (나중에 읽으려고합니다). 이 작업은 int 21h, AH = 3Dh 인터럽트로 수행해야합니다. 나는 0을 AL 레지스터에 넣고 (이 파일을 "읽기 전용"으로 열기 위해) DX에 ASCII 파일 이름을 푸시했다. 일반적으로 파일 핸들은 AX으로 푸시되어야하지만 그렇지 않은 경우입니다. 나는 2을 알 (이것은
나는 8086을위한 어셈블리 언어를 배우고, 내가 예를 들어, 줄 연속 문자가인지 알고 싶어 : 나는 한 번 읽어했습니다 mov ah,\
09
mov dx,offset msg
int 21h
' \ '기호는 줄 연속으로 사용되지만'\ '기호가 작동하지 않으므로 MASM에서 오류가 발생합니다.