組合語言題,組合語言題目,求詳解

2022-06-12 09:20:14 字數 3654 閱讀 6873

1樓:永恆

al=(0)、cf=(0)

code segment

assume cs:code

org 100h

start:

push cs

pop ds

push cs

pop es

mov al,ah

not al

add al,ah

inc al

jc @1

mov dl,'0'

mov ah,2

int 21h

jmp @exit

@1:mov dl,'1'

mov ah,2

int 21h

@exit:

mov ah,4ch

int 21h

code ends

end start

; 結果輸出為0,即進位標誌並未置1

《其實,有符號數的ff(即-1)加1後變為0,並不會產生進位》

2樓:匿名使用者

看彙編**要熟悉二進位制。

mov al,ah

al與ah的內容相同了

not al

將al每個位取反,0變1,1變0

add al,ah

此時al為全1,即11111111

inc al

遞增1,發生了進位,al變為了0,cf變為1

組合語言題目,求詳解

3樓:匿名使用者

mov di,offset buff 取陣列buff的首地址到di暫存器中

mov cx,000ah 設定迴圈次數

mov bl,0 做計數器用,用來記錄陣列buff中為0的位元組的個數,賦初值為0

goon:mov al,byte ptr [di] 將陣列的buff的一個位元組的資料放進al暫存器中

and al,al al中的資料與al中的資料做與運算,用來作為下一條跳轉指令的跳轉條件

jnz next 上一條指令運算不為0就跳轉到標號next處

inc bl 若 and al,al 這條指令的運算結果為0,bl暫存器就加1

next:inc di dl加1,dl最開始是陣列buff的首地址,加1相當於指向下一個位元組

loop goon cx先減1,判斷cx是否為0,若為0就跳出迴圈,不為0就迴圈,迴圈從標號goon處開始

hlt 停機

buff db 23h,54h,00h,83h,98h,36h,00h,49h,00h,73h

這段彙編**的作用是判斷單元大小為一位元組的陣列buff中有多少個位元組為0,並將結果儲存在bl暫存器中

組合語言題目

4樓:永恆

第3題:附加段的段地址為:4978h,左移4位得到其首地址為49780h,

段的長度為16kb即4000h,所以末地址為49780h+3fffh=4d77fh

第6題:壓棧1次,sp-2;彈棧1次,sp-2+2;再壓棧1次,sp-2+2-2=sp-2=100eh

ax=1234h,bx=1234h

第7題:

mov ax,0abcdh

and al,0fh--------al=0dhand al,30h--------al=00hshl ah,cl---------ah=0b0hand ah,0f3h-------ah=0b0h所以 ax=0b000h

第9題:結果就是buf1的位元組數,即6

組合語言的一道基礎題目求解

5樓:匿名使用者

da1   db  '01234'

da2   db  5  dup(0)

mov  si,0

mov  cx,5

lop:

;loop 1, si = 0

mov  al,da1[si]         ; al <-'0', (al) = 30h

add  al,11h               ; (al) = 41h

or   al,01h               ; (al) = 41h, 即'a"

mov  da2[si],al         ; da2[0] = 'a'

inc  si

loop  lop

;loop 2 , si=1

mov  al,da1[si]         ; al <-'1', (al) = 31h

add  al,11h               ; (al) = 42h, 即'b'

or   al,01h               ; (al) = 43h, 'c'

mov  da2[si],al         ; da2[1] = 'c'

;loop 3 , si=2

mov  al,da1[si]         ; al <-'2', (al) = 32h

add  al,11h               ; (al) = 43h

or   al,01h               ; (al) = 43h,

mov  da2[si],al         ; da2[2] = 'c'

;loop 4 , si=3

mov  al,da1[si]         ; al <-'2', (al) = 33h

add  al,11h               ; (al) = 44h

or   al,01h               ; (al) = 45h,

mov  da2[si],al         ; da2[2] = 'e'

;loop 5 , si=4

mov  al,da1[si]         ; al <-'2', (al) = 34h

add  al,11h               ; (al) = 45h

or   al,01h               ; (al) = 45h,

mov  da2[si],al         ; da2[2] = 'e'

最後da2結果:'accee'

求組合語言期末複習題

組合語言題目 5

6樓:

這種題ab一下子就可以排除了,剩下的cd,要是直接定址也不用加了對吧,那麼就是d選項符合了。

一道組合語言題目

7樓:做而論道

1)cnt = 10

代表資料 buf1、buf2 的總的位元組數。

2)buf1:

ff0a

3132

buf2:

1000

-- ;從這行往下,題目上都有了--4241

什麼是組合語言,什麼是彙編和組合語言?

組合語言就是計算機語言,它是有0,1組成的.通俗的說就是我們人和計算機交流的語言.介於機器語言和高階語言之間的一種 什麼是彙編和組合語言?彙編語copy言是一種低階計算bai機程式語言,說 低階du 並不是指語言的功能和複雜程度,而是它zhi出現在計算機發展史dao的早期,但現在仍廣泛應用於計算機開...

高分懸賞,組合語言高手進,高分懸賞 組合語言題請高手來解答。

我只答第一題,其它的太費事了,其實第1題也很費事的,呵呵。進入debug 下面只給出輸入內容,表示回車,空格不能少,顯示的內容自己看吧 a100 mov dx,180 mov ah,9 int 21 mov ah,4c int 21 f180 190 hello g 100 至此完成了顯示,下面再儲...

如何學習組合語言,學習組合語言需要如何入門?

學習組合語言過程 一,要有一定的微機硬體基礎知識,因為彙編很底層,更加接近機器語言,往往很多的東西要從機器層面來支援理解。二,最好先學習一門高階語言,因為高階語言更接近人的語言,相對比較容易理解。掌握了一門高階語言後再學彙編,一來不易產生畏懼感,二來遇到問題,只能侷限於已學的彙編知識來來思考遇到的問...