현재 MASM을 사용하여 DOSBox에서 어셈블리 프로그래밍 (16 비트)을 수행하고 있습니다.
내가 아는 것은 :
이것은 문자열을 선언하는 방법입니다 :
var db 'abcde'
이것은 배열을 선언하는 방법입니다 :
var db 'a','b','c'
I don't know for sure if these are correct, and I'm confused between these two, array and string
mov ah,9
int 21h
Does above code show output string and not output array?
-
답변 # 1
-
답변 # 2
말 그대로 차이가 없습니다. 둘 다 동일한 바이트의 데이터를 출력 파일에 어셈블합니다. (또는 당신이
'd'
를 포함하면 그들은 것입니다 그리고'e'
"배열"버전에서.)MASM의
SIZEOF
인 것 같아 연산자는 선언의 전체 줄을 포함합니다.문자열은 배열의 특수한 경우로, 기본적으로 여러 문자를 하나의
<시간>db
에 제공하는 편리한 구문입니다. 지시.때로 "string"이라는 단어는
0
와 함께 암시 적 길이의 문자열을 의미합니다. 또는'$'
종결 자로 바이트. 따라서 명시 적 길이의 문자열에 대한 포인터 + 길이 대신단순포인터를 시작에 전달할 수 있습니다.
관련 자료
- c++ - const string&s와 string&s의 차이점은 무엇입니까?
- c의 함수에서 배열을 반환 할 때 정적 배열 선언과 포인터 배열 선언의 차이점은 무엇입니까?
- javascript - Firebase Firestore는 타임 스탬프와 현재의 시차를 얻습니다
- linux - ARM 어셈블리 로딩 문자열이 이상한 터미널 출력을 생성 함
- node.js - 자바 스크립트에서 대소 문자를 구분하지 않는 문자열의 배열 값 바꾸기
- amazon web services - 일반 AWS EC2 인스턴스와 ML AWS EC2 인스턴스의 차이점은 무엇입니까?
- java - 이 두 코드의 차이점을 찾는 방법은 무엇입니까? 둘 다 실행될 때 동일한 대답을 제공하지만 웹 사이트에서 하나의 코드가 부분적으로 정확하다고 말합니다
- java - 주어진 두 정수의 합의 차이를 찾는 재귀 방법
- shell - 시간 문자열 이름을 기반으로하는 bash 정렬 배열
- math - 두 숫자 사이의 백분율 차이 얻기 JavaScript
- 문자열에서 분할 된 루비 배열
- php - "리턴 뷰"와 "리턴 메이크 - 뷰"의 차이점은 무엇입니까?
- R의 다른 작업에 대한 날짜 차이 계산
- python - 두 배열 간의 가능한 최소 차이 찾기
- 두 개의 다른 행과 R의 다른 열의 차이
- r - "x"라고 표시된 모든 셀에 대해 한 열에있는 두 행의 차이를 찾을 수 있습니까?
- Java에서 문자열을 배열로 변환하는 문제
- lisp - `# '(lambda…`와`(lambda…`사이에 차이점이 있습니까?
- java - sendRedirect (testjtp)와 sendRedirect (/testjsp)의 차이점
- python - Tkinter에서 config ()와 configure ()의 차이점은 무엇입니까?
모든문자열은바이트 배열으로 볼 수 있습니다.
두 가지를 같은 방식으로 출력 할 수 있습니다 :
이것은 배열의 요소가 메모리에서 서로를 따라 가기 때문에 작동하므로aString의 스토리지와byteArray의 스토리지에는 실질적인 차이가 없습니다.
차별하는 데 도움이되는 것은 사람들이 배열에 대해 이야기 할 때 문자열에 대해 이야기 할 때 실제 ASCII 코드를 신경 쓰지 않고 배열 요소에 저장된 숫자 값에 주로 관심이 있다는 것입니다. 문자열을 구성하는 문자.
aString db "abcdef", 13, 10, "$"
에서 a,b, ...byteArray db "a", "b", "c", "d", "e", "f", 13, 10, "$"
에서 차라리97,98, ... (보통 우리는 숫자로 시작했을 것입니다!) <시간>단어 크기의 요소 또는 단어 크기의 요소가있는 배열을 가질 수 있기 때문에 모든배열이 문자열 인 것은 아닙니다.