簡體   English   中英

試圖用匯編語言將 4 行字符串居中

[英]Trying to center 4 lines of string in assembly language

所以我是匯編語言的新手,我正在嘗試將 4 個字符串居中。 但我不知道為什么它不起作用。

這些是我在代碼中使用的 4 個字符串。 當我運行程序時, str1是唯一一個到中心的。 rest 位於左側。

str1 db "ADRIAN PAUL", 0AH, 0DH, "$"
str2 db "BS Computer Science", 0AH, 0DH, "$"
str3 db "09462524725", 0AH, 0DH, "$"
str4 db "macatopaul@gmail.com", 0AH, 0DH, "$"

這是我正在使用的代碼:

 MOV AX, @DATA
 MOV DS, AX
 
 MOV AX, 0600H
 MOV BH, 07H
 MOV CX, 0000H ;CLEAR SCREEN
 MOV DX, 184FH
 INT 10H
 
 MOV AX, 0600h
 MOV BH, 07h
 MOV CX, 0000h
 MOV DX, 184Fh
 INT 10h
 
 MOV AH, 02h
 MOV BH, 00h
 MOV DH, 0Ch
 MOV DL, 24h
 INT 10h

MOV AH,09h
MOV DX, OFFSET str1
INT 21h
MOV CX,001Ah
MOV AH, 02h
INT 21h

MOV AH,09h
MOV DX, OFFSET str2
INT 21h
MOV CX,001Ah
MOV AH, 02h
INT 21h

MOV AH,09h
MOV DX, OFFSET str3
INT 21h
MOV CX,001Ah
MOV AH, 02h
INT 21h

MOV AH,09h
MOV DX, OFFSET str4
INT 21h
MOV CX,001Ah
MOV AH, 02h
INT 21h
MOV CX,001Ah MOV AH, 02h INT 21h

這些行調用DOS api function 02h 可以顯示DL寄存器中 ASCII 碼的字符。 你沒有使用DL ,所以結果會出乎意料。
也許您正在嘗試 position cursor 與BIOS api ZC1C425268E68385D1AB5027C 鑒於您的任務描述,這將是有道理的。


在輸出每個字符串之前最好的 position cursor。 並且不要在字符串中包含回車符 (13) 和換行符 (10),因為它們不再有意義。

str1 db "ADRIAN PAUL$"
str2 db "BS Computer Science$"
str3 db "09462524725$"
str4 db "macatopaul@gmail.com$"
mov  bh, 0       ; DisplayPage
mov  dx, 0B23h   ; At(35,11)
mov  ah, 02h     ; BIOS.SetCursor
int  10h
mov  dx, OFFSET str1
mov  ah, 09h     ; DOS.PrintString
int  21h

mov  dx, 0C1Eh   ; At(30,12)
mov  ah, 02h     ; BIOS.SetCursor
int  10h
mov  dx, OFFSET str2
mov  ah, 09h     ; DOS.PrintString
int  21h

mov  dx, 0D23h   ; At(35,13)
mov  ah, 02h     ; BIOS.SetCursor
int  10h
mov  dx, OFFSET str3
mov  ah, 09h     ; DOS.PrintString
int  21h

mov  dx, 0E1Eh   ; At(30,14)
mov  ah, 02h     ; BIOS.SetCursor
int  10h
mov  dx, OFFSET str4
mov  ah, 09h     ; DOS.PrintString
int  21h

預期 output 位於 80x25 文本屏幕的中心:

 ADRIAN PAUL BS Computer Science 09462524725 macatopaul@gmail.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM