스택에 8 비트 값을 푸시 할 수 있습니까? NASM은 AL을 스택에 넣으려고 할 때 오류가 발생합니다. 나중에 스택에 16 비트 값이 저장되어있는 것을 알게되었습니다. 8 비트 값을 스택에 푸시하는 올바른 방법은 무엇입니까? 당신은 스택에 8 비트 값을 밀어 수 없습니다
다음 코드는 2 개의 1 차원 행렬을 더하고 합계를 표시합니다. 프로그램이 두 번째 행렬에 대한 입력을 받으면 문제가 발생합니다. rd_next 루프가 끝나지 않습니다. 그러나 그것은 첫 번째 행렬에 대한 입력을 잘 받아들입니다. data_seg segment
mat1 dw 3 dup(?)
mat2 dw 3 dup(?)
n db 3
ten dw 10
저는 emu8086에서 초보자입니다. 수정이 불가능한이 코드에 문제가 있습니다. 10 진수에서 2 진수로 변환해야 할 때가 있습니다. 예를 들어, 4,8,15,16,255와 같은 숫자를 사용하면 모든 것이 잘됩니다. 그러나 예를 들어 2,9,17,254를 사용하면 올바른 숫자가 표시되지 않습니다. 이 일에 정말로 도움이 필요해. .model small
입력 한 문자열을 반대로하는이 어셈블리 코드가 있습니다. 최대 20 자까지 허용됩니다. 내 문제는 내가 출력을 보려면 Enter 키를 누르면 반전 된 문자열 끝에 여분의 문자가 있다는 것입니다. 왜 그런 일이 발생하고 출력에서이를 제거 할 수 있는지 이해해주십시오. 문자열을 표시하려면 함수 09H int 21h, 문자열을 입력하려면 0Ah int 21h 함
는 일부 문자 입력 사용자를위한 프로그램이며 출력합니다 어떤 ; Section to store variables
section .data
string_msg: db "Enter a string (Max=64 Characters)", 0xD, 0
string_in: times 65 db 0h ; max = 64 char, last
다음 코드의 문제점을 알고 있습니까? 내가 원하는대로 작동하지 않을 수 있습니다. 변수 (문자 'h')의 단일 문자를 인쇄하려고합니다. 는 은 [] ; Set BIOS print screen settings
mov ah, 0x0e ; Teletype
mov bh, 0 ; Page number
mov bl, 4 ; Red on black (0000010
잠시 동안 내 코드를 고치려고했지만 작동하지 못하는 것 같습니다. 항상 오류가 발생합니다. COM 파일을 생성 할 수 없으며 세그먼트를 스택으로 생성 할 수 없습니다. 어떻게하면이 문제를 해결할 수 있을까요? .model small
.386
.stack 100h
.data
inpM db "Input string: $"
input db