組合語言 逆序輸出字串

2021-08-17 16:23:41 字數 1166 閱讀 4371

data1 segment

stri db 'based addressing','$'

data1 ends

stack1 segment stack

dw 20h dup(?)

top label word

stack1 ends

code segment

main proc far

assume ds:data1,cs:code,ss:stack1

;start:

mov ax,data1

mov ds,ax ;把資料放進ax暫存器,再放到ds段暫存器中

mov ax,stack1

mov ss,ax

lea sp,top  ;把棧也放在ss段暫存器中,sp記錄棧頂位置

lea si,stri;用si記錄字串

mov cx,0      ;cx記錄字串的長度

line1:

cmp byte ptr [si],'$'   ;cmp比較指令,對兩數進行相減,進行比較

je input                ;je條件轉移指令

inc si                  ;inc 自增符號

inc cx

jmp line1               ;無條件轉移指令jmp

input:

lea si,stri            

add si,cx

dec si                   ;dec減一指令

line2:

mov dl,[si]

mov ah,02h               ;顯示輸出

int 21h

dec si

loop line2               ;迴圈

exit:

mov ah,4ch               ;帶返回碼終止

int 21h

main endp

code ends

end 

一開始,一直出現錯誤指令:

e:\002.asm(17) : error a2004: symbol type conflict

後來,通過修改配置->系統配置->編譯/指令碼->單獨檔案預設使用dos模式

難道要弄個雙系統???

組合語言對視訊記憶體直接輸出字串

程式目的 設定輸出字型的格式,具體見程式注釋 程式 d seg segment str1 db hello world 定義字串 d seg ends c seg segment assume cs c seg,ds d seg 定義cs,ds,入口 start mov ax,0b800h mov ...

組合語言學習記錄 輸入輸出字串

data segment buff db 255 緩衝區,用於存放字串 db db 255 dup crlf db 0ah,0dh,回車換行 data ends code segment assume ds data,cs code start mov ax,data 取資料段存入ds中 mov d...

輸出字串

5.連線字串 半形句號 是字串連線符,可以把兩個字串連線成乙個字串。例如7 5 echo str.url 技巧 我們可以使用字串連線符累加字串。例如7 6 第一句我們給 str賦值,str表示字串 php中文社群位址是 第二句表示在 str的值上累加字串 www.phpnet.cn 所以,str最後...