一道組合語言題跪求解答,困擾好幾天了

2021-05-06 02:39:25 字數 4091 閱讀 1712

1樓:永恆

你的問題回答:

1、lea 和 mov 都可以取變數的偏移地址,只是mov語句需要加 offset 字首;

2、**程式確實囉唆,完全可以直接 「mov ax, x」 將8100h 傳送給 ax 。

程式中的問題:

很顯然,x、y 兩個數都是負數,直接相加產生溢位;如果當無符號數計算,也會溢位,所以這樣的運算,在相加之前,就應先將字擴充套件成雙字再進行運算 !!!

mov       ax,x

cwdmov       bx,ax

mov       cx,dx

mov       ax,y

cwdadd       ax,bx

adc       dx,cx

; 相加的結果在 dx、ax 中(dx 存高16位,ax 存低16位)

一道組合語言的題目。。求高手來解答

2樓:

data segment

addr db 'bdfjdhjfhefkek....','$'

leth dw 0

data ends

code segment

main proc far

assume cs:code,ds:datastart:

mov ax,data

mov ds,ax

mov bx,offset addr

mov cx,0

next:

mov al,[bx]

cmp al,'$'

je end_a

inc cx

inc bx

jmp next

end_a:

mov bx,offset leth

mov [bx],cx

retmain endp

code ends

end start

3樓:

統計字串並顯示。

;----------------------------------------

;統計字串的長度(最多能統計255個字元)

data segment

str db 'i love you forever$'

data ends

;----------------------------------------

code segment

assume cs:code, ds:data

start:

mov ax, data

mov ds, ax

sub ax, ax

lea si, str

compar:

mov bl, [si]

cmp bl, '$'

jz binidec

inc al

inc si

jmp compar

binidec:

mov bl, al

mov cl, 10d

call div_dec

mov cl, 1d

call div_dec

mov ah,4ch

int 21h

;----------------------------------------

div_dec proc near

mov al, bl

cbwdiv cl

mov bl, ah

mov dl, al

add dl, 30h

mov ah, 02h

int 21h

retdiv_dec endp

;----------------------------------------

code ends

end start

;----------------------------------------

一道組合語言的題,求解答

4樓:永恆

二進位制的最低位為1或0,其它的高位均是2的倍數,所以二進位制數的奇偶性由最低位決定。

當最低位為1時,數為奇數。當最低位為0時,數為偶數。

5樓:可軒

test ax,01h 功能是將待檢測數與0000 0000 0000 0001b作「與」運算,

若test結果為零(零標誌位jz=1),表示待檢測數二進位制最低位為0,該數是偶數;

若test結果非零(零標誌位jz=0),表示待檢測數二進位制最低位為1,該數是奇數。

一道組合語言的題,請幫忙解答 15

6樓:匿名使用者

var1 var2人偏移量不需要知道,不確定,執行程式時由系統分配$就是當前語句的地址,

$-var1就是當前地址減去var1的地址就是var1和var2的地址長度

一道簡單的組合語言填空題。求解答!

7樓:

運算元的實體地址 = 段暫存器中的段地址 * 10h + 段內偏移地址。

你這一題中,源運算元使用的是暫存器間接定址方式,預設段暫存器為ds。

所以,段地址 = (ds) = 8225h,偏移地址 = (di)=3942h

實體地址 = 8225h * 10h + 3942h = 86192h

一道組合語言程式設計題!急求大神解答明天期末考試就要考了務必按照試卷上的要求來回答好的話有q幣 200

8樓:匿名使用者

這個檔案是在radasm裡面執行的。

9樓:做而論道

用 80x86 的 16 位組合語言來程式設計,可否?

·一道簡單的組合語言問題求詳細解答(又來了。。最近忙靠**啊,都要自學。。

10樓:匿名使用者

dw是二個位元組dd是四個,dd和dw分別定義32和64個,偏移為32*4+64*2=256,equ不定義資料只定義別名,不影響後面的偏移地址,故答案256合16進位制的100(十六進位制加h或寫作0x100)

11樓:尼歐趙

64*2=128 ,因為是字,所以*2才是位元組32*4=128 ,因為是雙字,所以*4y佔2個位元組

一共128+128+2=258個位元組

258=102h,所以偏移地址應該是102h。

偏移地址就是這個變數和起始地址之間隔了多少位元組。

64表示64個字 (dw)

32表示32個雙字 (dd)

h表示16進位制,100h表示16進位制數100,等於10進位制的256。

12樓:匿名使用者

這個是個資料段嘛,偏移地址應該是8

dw是一個字,dd是2個字,y也是兩個字,所以z 就應該是偏移了8個位元組

誰能給我解答一道組合語言的題目阿,不勝感激!

13樓:俺洗澡不用水

;資料段

inmsg db 『input number:0 ~ 9』,0dh,0ah,』$』

ermsg db 『error!』,』$』

;**段

mov dx,offset inmsg

mov ah,9

int 21h ;顯示輸入數字0~9

again: mov ah,1

int 21h ;接受一個字元回

cmp al,』0』 ;判斷

是否輸入的答是數字0~9

jb erdisp

cmp al,』9』

ja erdisp

mov dl,al

mov ah,2

int 21h ;顯示輸入的數字

jmp done ;結束

erdisp: mov dx,offset ermsgmov ah,9

int 21h ;顯示輸入錯誤

jmp again ;繼續輸入

done: …

求解一道c語言題,求解一道英語題

函式fun中有c,但是那個c只屬於函式fun,且fun不返回c,主函式中定義的c也沒有接受fun返回的值,所以,相當於,只是定義了變數,所以是不確定的,望採納,謝謝。include int fun int a,int b int main include int main void main 函式 ...

c語言一道題,求解釋,一道C語言題,求解釋

輸入比如 13 4 15 6 12 這樣的加減法表示式並根據表示式計算結果 把輸入的字元轉化成int型 如果oldc為 則執行加法運算,否則執行減法運算 輸出sum 迴圈一直到輸入為 時結束 這個其實就是類似於簡單的 計算機 呵呵 一道c語言題,求解釋 題目輸出的是 指標所指的字串的長度。一共是10...

求一道51微控制器程式設計題的程式,組合語言,謝謝了

程式有些長 還是自己查些資料 反對伸手注意 把課本中的相關程式整合在一起就可以了。這個,你在找現成的麼?51微控制器組合語言的一道題 qc mov dpl,00h mov r2,8 clr 00h qc1 mov a,r2 dec a add a,dpl mov dpl,a mov dph,21h ...