내가 부트 로더를 쓰기 위해 노력하고있어하지만 난이 질문에 발견하기 전까지 내 실험의 방법으로도 문제가 해결되지 않았다 : Why doesn't this boot loader code work? 난 단지 화면에 문자를 쓰기에이 프로그램을 단순화했다합니다. [ORG 0x7C00]
[BITS 16]
realstart:
jmp start
얻기 이것은 간단한 질문은 희망입니다. 바로 지금, 내가 가진 : section .data
greet: db 'Hello!', 0Ah, 'What is your name?', 0Ah ;simple greeting
greetL: equ $-greet ;greet length
colorQ: db 'What is y
이것은 사소한 문제처럼 보인다 2 바이트 변수를 잘라 내기,하지만 난 잃었어요. 레지스터 bx 단일 바이트 동안이 예에서는 character 는 2 바이트 변수이다. 나는 분명하기 때문에 크기의 차이 작동하지 않을 것이다, cmp bx, [character]을 할 노력하고있어. 나는 character의 첫 번째 바이트에 bx을 비교하기 위해 노력하고있어.
저는 실행 파일로 전달 된 파일 이름을 읽고 어셈블리를 사용하여 해당 파일에 쓰려고합니다. 오류없이 컴파일되지만 실행시 실패합니다. 내 코드가 정확히 무엇입니까? BITS 32
segment .data
text db "text"
segment .text
global main
main:
pop ebx
pop ebx
pop ebx ; pop
그래서 NASM을 사용하는 Linux 용 x86 어셈블리 프로그램에서 작업하고 있습니다. 이 프로그램은 기본적으로 사용자에게 이름과 좋아하는 색을 묻습니다. .bss라고 섹션에서 선언 된 변수에있는 두 개의 문자열을이 일을하고 저장 후 프로그램 인쇄 "사용자 수있는 방법 이름, 좋아하는 색깔도, 내 마음에 드는 색상입니다! 오전 데 문제가 출력에 엄청난 공
내 프로그램은 사용자로부터 n 정수를 읽고 모든 제수를 계산하고 이들이 소수인지 아닌지를 계산합니다. 나는 Irvine 32 라이브러리를 사용하고있다. 지금 이것은 이상한 부분입니다, 제가 짝수로 입력하면 프로그램이 실행됩니다. 내가 입력하고 홀수 번호를 입력하면이 프로그램의 제목 인 오류가 발생합니다.는 내 주요 PROC : main PROC
;;;;;
이 균열 내 머리를 만든다 (치명적인 : 'fir.asm'추가 세그먼트는 .DEF 파일에 정의해야) 나를 아주 나쁜 기분 내가 사용하려고 오래 된 borland와의 독립형 어셈블리 C++ 5.5 (bcc32) NASM 어셈블러를 선택하고 ASM에서 루틴을 작성했습니다. obj로 어셈블하면 링크가 잘되어 작동합니다. 그것은 작동하지만 내가 오류 또한 데이터
나는 사용자 입력을 두 번 취하여 그 결과를 나중에 표준 출력으로 출력하기 위해 프로그램 작업을하고있다. 내가 겪고있는 문제는 결과가 입력 인터럽트 (eax)에서 반환 될 때 나중에 사용할 수 있도록 스택에 푸시한다는 것입니다. 두 번째 사용자 입력에 대해이 작업을 다시 수행합니다. 내가 지금까지 가지고있는 코드는 다음과 같습니다이 %include "sys
나는 레지스터에 현재 보유하고있는 값을 복사하여 프로그램에서 나중에 사용하는 방법을 알아 내려고하고 있습니다. 나는 코드를 루핑 할 것이고,이 값은 스택으로 밀어 넣기 위해 다른 레지스터에 복사 한 다음 제거, 복사 및 반복 할 필요가있을 것이다. mov 명령은 값을 다른 레지스터로 이동하지만 그 값을 옮길 수있는 레지스터는 값을 유지할 수 있습니까? 예를
내 프로그램은 현재 작업 디렉토리의 절대 경로 이름을 길이가 4096 인 buff가 가리키는 메모리 위치에 복사하는 인터럽트 80h 함수 183 (getcwd)을 호출합니다. 반환 된 절대 경로 이름 길이는 보통 4096 바이트보다 작습니다 진정한 길이를 원한다. 내가 어떻게 할 수 있니? %define LF 0Ah ; Line feed ASCII cod