組合語言資料段問題,組合語言中定義的資料段的問題

2022-11-13 22:35:26 字數 2822 閱讀 6950

1樓:匿名使用者

如果1000h只是偏移地址,段地址由系統指定,可用下面方法:

data segment

org 1000h ;用來指定下面資料或指令的偏移地址從該值開始

db 38h, 4ah,2bh,80h,64h,0a7h,0bbh,9ch,83h,0f6h

data ends

如果1000h是實體地址,則要先把它轉化為邏輯地址,如0100:0000,也就是段地址為0100h,偏移地址為0000h,那麼可用下面方法:

data segment at 0100h ;at可用來指定段地址,但cs除外

org 0000h

db 38h, 4ah,2bh,80h,64h,0a7h,0bbh,9ch,83h,0f6h

data ends

2樓:

使用org指令

data segment

org 1000h

db 38h, 4ah,2bh,80h,64h,0a7h,0bbh,9ch,83h,0f6h

data ends

3樓:匿名使用者

dseg segment

org 1000h

ary db 38h, 4ah,2bh,80h,64h,a7h,bbh,9ch,83h,f6h,dbh, 1,1,1,1,1

dseg ends

組合語言中定義的資料段的問題

4樓:

這個就是這麼規定的。

如果定義變數的時候,是這樣的形式:

變數名 型別 常量

那麼結果就是把常量的值賦給變數。

如果是這種形式:

變數名1 dw 變數名2

那麼結果就是變數名1 = 變數名2在段內的偏移地址。

如果是這種形式:

變數名1 dd 變數名2

那麼結果就是變數名1的高16位是變數名2的段地址,低16位是變數名2在段內的偏移地址。就是這麼規定的,記住就行了。

5樓:

變數的三個使用方法:

1 變數作為指令中的運算元,代表變數值

da1 db 0feh,57h

mov al ,da1 al=0feh

mov al, da1+1 al=57h2變數出現在偽指令的引數中或指令語句定址方式中時,表示偏移地址mov da3[si], al

3《當定義變數偽指令時引數為另一個變數時,則變數的值為被引用變數名的地址,段基值和偏移量》如果用dw時,則只有偏移量 如果用dd則前二個位元組存放偏移量 後二個位元組存放段基值~

組合語言中定義的資料段的問題有哪些?

6樓:

這個就是這麼規定的。

如果定義變數的時候,是這樣的形式:

變數名 型別 常量

那麼結果就是把常量的值賦給變數。

如果是這種形式:

變數名1 dw 變數名2

那麼結果就是變數名1 = 變數名2在段內的偏移地址。

如果是這種形式:

變數名1 dd 變數名2

那麼結果就是變數名1的高16位是變數名2的段地址,低16位是變數名2在段內的偏移地址。就是這麼規定的,記住就行了。

組合語言定義資料段的問題 急求。。。

7樓:匿名使用者

你的程式並沒有定義棧段。若定義了,則應:movax,segsdegmovss,axmovsp,top------因為棧結構是從高地址向低地址生長的,要把棧段的最高處的偏移賦給sp直接寫movax,[bx]是可以的,因為通過暫存器ax可以確定是傳送的「字」

組合語言問題 資料段的使用 10

8樓:

假設你想要將str偏移量為off[i]的數傳到ax中:

mov si, [off+i*2] ;取off的第 i 個元素的值,i 從0開始計數

mov ax, str[si]

9樓:做而論道

mov si, off[i]

mov al, str[si]end

10樓:

mov ax,offset off ;取得off的偏移地址mov bx,[ax+i] ;取得偏移地址的實際值 i肯定不能夠是未知數 前面應該已經計算出來了

mov ax,offset str ;取得str偏移地址mov cx,ax[bx] ;取得str實際字元可能有些語法錯誤

11樓:

mov bx, i

mov si, off[bx]

mov al, str[si]

求助!組合語言資料段的段名問題!

12樓:

段名是16位沒錯,能否算立即數,我也說不準

反正不能mov al, data

可以轉到al,但估計只是把低8位傳過去。

13樓:

段名只是個地址

沒見過mov al, data

只有mov ax, data

ds不可分解

14樓:匿名使用者

mov al,data是錯的,一個十六位的數怎麼能放進一個八位的暫存器裡面呢??只能用mov al, high data或mov al,low data

組合語言問題求解,組合語言問題求解

我也是學這門課,我試試吧。本人學的不是很精通,僅供參考。1 code segmentassume cs codemov cx,offset datamov dx,offset max 用lea指令也可 專以mov ax,cx mov bx,cx 1 cmp ax,bxja loop1mov dx,b...

組合語言中的push的用法,組合語言中的PUSH的用法

push的操作過程是 sp sp 2,sp oprd 即先修改堆疊指標sp 壓入時為自動減2 然後,將指定 的運算元送入新的棧頂位置。此處的 sp oprd,也可以理解為 ss 16 sp oprd 或 ss sp oprd 示例 push dx push bp push cs push data1...

組合語言程式設計,組合語言程式設計

教你一個小招,用vc6.0編好一個c的程式,然後alt 8可以檢視彙編程式 1 include 2 void main void 3 00401055 jmp main 21h 00401031 10 for i 0 i 4 i 00401057 mov dword ptr ebp 14h 0 00...