組合語言中字串變數是如何儲存的啊

2022-05-26 15:20:27 字數 2198 閱讀 2998

1樓:天方夜譚的哆啦a夢

datassegment

a100dup(?)

datasends

codessegment

assumecs:codes,ds:datas,ss:stacksstart:

movax,datas

movds,ax

movsi,offseta

movcx,20

l:movah,01h

int21h

mova[si],al

incsi

loopl

movah,4ch

int21h

codesends

endstart

擴充套件資料組合語言的優點

組合語言的出現大大方便了程式設計師的程式編寫和記憶,使計算機語言的發展向前邁進了一大步。但實際上,組合語言仍然是一種低階語言,仍然是面向機器硬體的程式設計語言。

正因為如此,組合語言今天仍被廣泛用於編寫面向機器硬體的實時控制程式和系統程式。例如機器自檢、系統初始化、實際的輸入和輸出裝置的操作等。

2樓:永恆

使用dos的10號功能呼叫實現。

10號功能呼叫的緩衝區結構為 buf db 255,?,255 dup(?)

(注:各部分的含義:最大長度、輸入串的實際長度(不含回車)、實際的串)

例如:buf db 255,?,255 dup(?).............

mov ah,10

lea dx,buf

int 21h

實際的串的首地址在buf[2],可用 lea si,buf[2] 得到

如何組合語言定義變數

3樓:大野瘦子

組合語言定義變數的格式為 :【變數名】【變數型別】【數值列表】其中,變數型別有db,dw,dd等,分別表示變數佔有的記憶體空間(依次為1,2,4個位元組)

如:a db 1,2,3,4 就定義了名稱為a的4個佔1個位元組的變數,分別是1,2,3,4(嚴格來說是0001,0010,0011,0100)儲存在系統分配的記憶體空間中。

如果是a dw 1,2,3,4則儲存的值為(00000001,00000010,00000011,00000100)

4樓:匿名使用者

組合語言在資料段使用資料定義偽指令定義變數,對資料定義偽指令說明如下:

1、db((byte,位元組,一位元組寬)

2、dw(word,字,兩位元組寬)

3、dd(double word,雙字,四位元組寬)

各個資料定義偽指令均可以連續定義變數。

示例如下:

datas segment;定義資料段

buf0 db 1;定義一個位元組型變數,名稱是buf0,初始值是01h

buf1 db "2";定義一個字元型變數,名稱是buf1,初始值是"2"

buf2 dw 1;定義一個字型變數,名稱是buf2,初始值是0001h

buf3 dd 2;定義一個雙字型變數,名稱是buf3,初始值是00000002h

buf4 db 1 dup(50);定義連續50個位元組型變數,名稱是buf4,初始值是01h

buf5 db "12345678";定義一個字元型變數,名稱是buf5,初始值是"12345678"

datas ends;資料段定義結束

stacks segment;定義堆疊段

db 100 dup(?)

stacks ends

codes segment;定義**段

assume cs:codes,ds:datas,ss:stacks;段暫存器關聯

start:

mov ax,datas

mov ds,ax

......

codes ends

end start

5樓:小睡黍

在資料段中用如下格式:

《名稱》 《單位大小》 《內容》

其中單位大小可以是db(byte,位元組)、dw(word,字,兩位元組大)、dd(double word,雙字,四位元組大)等

如:msg db "asdf"定義了一個叫msg的,單位大小是1位元組的字串變數。

a dw 0定義了一個雙字的空間,叫a。

c語言中整型變數怎麼儲存字串?

如何定義定義的字串,C語言中如何定義字串?

定義的字串 可以通過字元陣列或字元指標來定義字串,也可以用巨集定義對常量字串進行定義。下面通過舉例來分別進行說明 char str1 helloworld 通過字元陣列來定義字串 helloworld 陣列中每個儲存單元存放一個字元 char str2 helloworld 通過字元指標來定義字串 ...

c語言字串長度如何數,C語言字串長度如何數?

1 首先開啟vs2014,新建一個專案。2 然後我們根據圖示 新建一個main函式。3 然後我們根據圖示 新增標頭檔案。4 然後我們根據圖示 新增main函式。5 然後我們根據圖示 定義int變數len。6 然後我們根據圖示 定義char型別變數str。7 然後我們根據圖示 使用scanf給str賦...

c語言如何求字串長度,c語言 計算字串長度

你的 出現問題的原因是scanf s a a是一個char型別的變數,系統為它分配了一個位元組的記憶體空間,但是你卻輸入了一個字串到以a的地址為首地址的一段連續的記憶體空間裡,這樣就出現了越界錯誤.但是printf函式並不檢查越界錯誤,它會按正常的方法執行,然後程式統計出長度,列印出來結果.但是返回...