良い一日。私はアセンブリ言語に不慣れで、TASMで色付きの「HelloWorld」を印刷しようとしています。これが私のこれまでのコードです。「helloworld」を色なしで印刷するだけです。
.model small
.stack 100h
.data
message db 13,10,"Hello World!$"
.code
main proc near
lea dx, message
mov ah, 09h
int 21h
mov ah,4ch
int 21h
main endp
私はこのようなものを読みました
mov ah,9 ;Function 9: Write character and attribute at cursor position
mov al,'H' ;AL = character to display
mov bh,0 ;BH = page number
mov bl,02EH ;BL = attribute (yellow on green)
mov cx,1 ;CX = number of times to write character
int 10H ;Int 10H: Video (show the character)
フォーラムではありますが、HelloWorldに組み込むことはできません。なぜその特定のレジスターなどを使用するのか混乱しています。私を助けてください。どうもありがとうございます!
編集
.model small
.stack 100h
.data
hello db 'Hello World!',0
.code
main proc near
mov ax, @data
mov ds, ax
mov ax, 3
int 10h
mov si, 0 ; cl is the counter register, set it to
; zero (the first character in the string)
start: ; Beginning of loop
mov al, hello[si] ; Read the next byte from memory
cmp al, 0 ; Compare the byte to null (the terminator)
je endthis ; If the byte is null, jump out of the loop
mov ah, 09h
mov al, hello[si]
mov bh, 0
mov bl,02EH
mov cx,11
int 10H
add si, 1 ; Move to the next byte in the string
jmp start ; Loop
endthis:
mov ah, 4ch
int 21h
main endp
end main