在組合語言中,怎樣程式設計給變數賦初始值

2021-04-18 09:14:44 字數 1709 閱讀 1411

1樓:匿名使用者

比如要給qw變數賦初值

qw db 064h

qw的值就是64h了

2樓:匿名使用者

問的是不是如何給電子萬年曆設定初始日期和時間,讓它從這個時間開始走?

3樓:

不同的組合語言賦值的語句不同,例如在51微控制器的組合語言中

給一個暫存器賦值這樣寫

mov a,#10h

4樓:匿名使用者

組合語言怎麼還有賦初值的問題,一般只有

高階語言才有所謂的變數常量賦初值。

內組合語言只有地址,暫存器,容暫存器或地址中的資料這些概念,如果硬要說類似於賦初值的過程,大概是偽指令吧,

例如m db 0fh

就把0fh放入某地址用(用m代表)

那麼mov al m的意思就是把m上的數(0fh)放入暫存器al上

5樓:安靜

在定義變數的時候

把常量給變數不就得了?

關於給組合語言中的變數賦值的問題

6樓:璩楚華橋

你要知道,變數名只是個符號地址而已,它有三個屬性,段基址、偏移量和型別,並不能說切確的是幾個量。

比如:varx

的偏移量是0,那麼偏移量2的地方

1.假如你是以兩個位元組處理的話,一個量就是1023h2.假如你是以一個位元組處理的話,一個量就是23(注意:

intel的記憶體儲存方式,「高高低低」,也就是說高位放在高地址,低位放在低地址)

記憶體狀態:

|6fh

|<------偏移量0(也就是varx的偏移量處)|82h

|<------偏移量1

|23h

|<------偏移量2

|10h

|<------偏移量3

7樓:昌豐篤綠柳

直接再資料段為它賦值不就好了麼~

組合語言 賦值問題 5

8樓:大帥哥

這樣是不能滴!錯誤在於型別不明確,當目的運算元(這裡指es:[bx])和源運算元(這裡是指[bx])都是暫存器間接定址方式時,就沒有一個標準來限制所賦的值的型別。

mov指令的使用限制:1、源運算元與目的運算元可以是位元組、字或雙字,但必須有相同的型別; 2、源運算元與目的運算元不能同時為儲存器運算元;例如:假設變數x_byte用db定義,變數y_word用dw定義正確:

mov x_byte, -5 ; 位元組傳送指令,-5(0fbh)送x_byte mov y_word, -5 ;字傳送指令,-5(0fffbh)送y_word 錯誤:mov x_byte, 300 ; 目的運算元超出範圍 mov [bx], 30h ; 運算元型別不能確定

在組合語言中,給變數賦值的是大寫,如0xfe。在c語言和51微控制器c語言中,我經常看到賦值小寫,如

9樓:匿名使用者

在c語言中,是區分大小寫的,而在彙編中不區分大小寫。所以彙編程式設計沒有必要嚴格區分,除非一起做開發,團隊給規定。

10樓:匿名使用者

大小寫應該是通用的。

11樓:起因機器

你這是微控制器的c語言,全大寫的是暫存器,0***是16進位制碼

組合語言程式設計

一 mov di,0000h 讓ds di指向字串mov cx,n 設定迴圈次數mov al,a 設定掃描的字母cld 設定df為0repne scasb 開始掃描jz found 找到則跳轉mov di,00h 沒找到則讓di指向字串開頭found mov bx,di 讓bx記錄a所在位置hlt ...

組合語言中st指令什麼意思組合語言中,ST指令什麼意思?

st是store的簡寫,ld是load簡寫,前面一個是寫,後面一個是讀。st是源暫存器 儲存區,ld是儲存區 目的暫存器。字資料傳送指令 ld,st 這是最簡單的資料傳送指令,不用考慮符號位的問題,直接以機器的位長存取資料。ld 從記憶體中取32位字資料放人暫存器,st將暫存器中的32位字資料儲存到...

組合語言中ptr的作用是什麼,組合語言中CMP的作用是什麼?

ptr應該就是pointer 說明地址指標型別。當兩個運算元型別均不明確時,必須用byte ptr 位元組屬性 或word ptr 字屬性 將一個儲存器運算元定義為位元組或字型別。如 mov byte ptr si oah 指明 si 為位元組型別 在沒有暫存器名存在的情況下,用操作符 x ptr ...