求解一道組合語言程式題,急,滿分求解組合語言簡答題,線上等,專業的來,急!!!

2021-03-29 08:38:00 字數 5361 閱讀 3509

1樓:納蘭旖兒

每次看到湯叔的程式都好有壓力= =~~我寫個簡單的吧~這個程式比較簡單~但是個數超過10會出錯~因為在網咖寫的**沒有編譯~明天會來檢查下。。。。。

data segment

str db 'abcabcabcabcdfalk','!'

an db 30h

bn db 30h

** db 30h

data ends

code segment

assume ds:data,cs:codestart:

mov ax,data

mov ds,ax

mov si,offset str

lop:

cmp byte ptr [si],'a'

jne next1

add an,1

next1:

cmp byte ptr [si],'b'

jne next2

add bn,1

next2:

cmp byte ptr [si],'c'

jne next3

add **,1

next3:

cmp byte ptr [si],'!'

je next4

inc si

jmp lop

next4:

mov ah,02h

mov dl,an

int 21h

mov dl,' '

int 21h

mov dl,bn

int 21h

mov dl,' '

int 21h

mov dl,**

int 21h

mov ah,4ch

int 21h

code ends

end start

2樓:

;完整程式

;編譯,連結通過

;執行正確

data segment

str db 'a bb ccc !'

re db 3 dup(0)

data ends

stack segment stack

sktop db 40h dup(?)

sksize equ $-offset sktopstack ends

code segment

assume cs:code,ds:data,ss:stackbegin: mov ax,data

mov ds,ax

mov ax,stack

mov ss,ax

mov sp,sksize

lea si,str

lea di,re

call stat

mov ah,2

mov cx,3

xor bx,bx

dsp: mov dl,[bx+di]

add dl,'0'

int 21h

add bl,'a'

mov dl,bl

int 21h

mov dl,' '

int 21h

sub bl,'a'-1

loop dsp

mov ax,4c00h

int 21h

;引數: si=欲統計的字串的有效地址

; di=儲存統計結果的有效地址

;返回: none

stat proc

push ax

push bx

push cx

push si

mov al,0

mov cx,'c'-'a'+1

xor bx,bx

fill0: mov [bx+di],alinc bx

loop fill0

xor bx,bx

xor ah,ah

stats: mov al,[si]

cmp al,'!'

je statre

sub al,'c'

ja contn

add al,'c'-'a'

js contn

mov bx,ax

inc byte ptr [bx+di]

contn: inc si

jmp stats

statre: pop si

pop cx

pop bx

pop ax

retstat endp

code ends

end begin

滿分求解組合語言簡答題,**等,專業的來,急!!!

3樓:救贖削腎客

1。偽指令用於告訴彙編程式如何進行彙編的指令,它既不控制機器的操作也不被彙編成機器**,只能為彙編程式所識別並指導彙編如何進行。!是對編譯器而言的!

機器指令是彙編源**轉化為計算機可以執行的指令。

2。ip與cs對應。為指定指令區域

sp是與ss聯用 一般是棧堆

bx與ds(不確定)

3。cx ;設定計數次數200次si ;源字元

di ;目標字元cld ;方向遞增還是遞減rep movsb ;將目的串送給源串

4樓:我是張彩平

偽指令與機器指令最本質的區別就是機器指令的功能是靠硬體實現的,而偽指令是靠軟體實現的。(如果想更清楚請往下看)

在組合語言中,機器指令是用來完成相應的操作的,但彙編源程式中僅有機器指令語句是不能被彙編程式翻譯成目標程式的。因為彙編程式自身無法區分出程式中的分段情況、資料和指令的形式以及資料的型別,也不知道源程式在何處結束等等。這樣,就需要在源程式中使用一些起彙編控制作用的命令,它們可以對彙編過程起控制說明的作用,但不產生目標**。

這些命令是靠程式實現的,即每一條彙編控制命令都對應一段處理程式,彙編程式在將源程式翻譯成目標程式時,每遇到彙編控制命令就執行相應的處理程式,控制目標**的生成,稱之為「「偽指令」」

2.另兩題的答案正如下面的那位所說,我就不再廢話了。

求解一道題關於組合語言的題 20

5樓:匿名使用者

eeeeeeeeeeeeeeeeeeeeeeee

問一道組合語言的題目,急求解答!

6樓:

複製的是什麼?

你自己說得很清楚了 「下面的程式的功能食將「mov ax,4c00h」之前的--->指令<---複製到記憶體0:200處,」

從**到**?

從 當前位置 ---> 0:200h

不過位置好像有些不對,因為0:200h還在系統的中斷向量區,會破壞系統的,絕對導致宕機。

有多少位元組?如何知道要複製的位元組的數量?

笨的辦法是彙編之後看每一條指令的有效地址,更好的辦法是,在複製開始和結束的指令(實際上應該是他後面的那條指令)前都加上一個標號,標號的值就是指令對應的地址,兩個標號相減就是對應的位元組數。

7樓:匿名使用者

assume cs :code

code segment

start:mov ax,10h //10hmov ds.ax

mov ax,0020h

mov es,ax

mov bx,0

mov cx, end-start //end-start

s:mov al,[bx] //]mov es:[bx],al

inc bx

loop s

mov ax,4cooh

end:int 21h

code ends

end1.複製的是將一段**由一個地方複寫到另一個地方2.有多少位元組?end-start

3.如何知道要複製的位元組的數量? 標號之差

組合語言程式的一道題。求高手解答!!!

8樓:北極星

你的答案是

抄錯的答案是ax=2,bx=4,cx=2,dx=2 你可以襲自己編寫一個程bai序除錯du

start:mov ax,01h

mov bx,02h

mov cx,03h

mov dx,04h

;前面4行使ax=1,bx=2,cx=3,dx=4

next:inc ax ;ax+1執行後zhiax=2

add bx,ax ;bx=bx+ax執行後bx=4

shr dx,1 ;dx向右移一位,相當dao於dx除於2,執行後dx=2

loope next ;重點來了,這一行的loope他的執行具體是,先使cx減1,然後再判斷cx是否等於零,並且判斷標誌位zf是否等於1,如果cx<>0並且zf=1那麼就轉到標號,否則退出迴圈.上一行的shr dx.1是影響zf的,結果zf是等於0,所以這裡退出迴圈,執行完後cx=2

9樓:聲學初學者

mov ax,01h------->ax=1mov bx,02h------->bx=2mov cx,03h------->cx=3mov dx,04h------->dx=4inc ax-------->ax=ax+1=1+1=2add bx,ax------>bx=bx+ax=2+2=4shr dx,1-------->就是把dx的值向右來移一位自,即dx=2

然後是怎麼迴圈的我就不知道了,你這個不是一個完成的程式吧?

10樓:匿名使用者

start:mov ax,01h

mov bx,02h

mov cx,03h

mov dx,04h

這個懂嗎?

:inc ax 此時ax=2

add bx,ax 此時bx=4

shr dx,1 此時dx為1

c沒有變還是3

所以abcd依次為2431.。。專

。。。。。。。。。。。。。

loope next退出了屬next程式

11樓:匿名使用者

用匯編生產baiexe程式

然後用dudebug除錯(開始—執行zhi—debug)這樣你就可以一步

dao一的跟著你的程式專走

你能清楚的看到屬你記憶體和暫存器的變換

原本現在學彙編就是要了解記憶體和暫存器的變換,而debug給你提供了一個很好的環境

以後有不懂的就用debug除錯

如果程式太大你可以用od除錯

至於debug怎麼用你可以到網上去搜尋下

c語言小白求解一道題,C語言小白求解一道題。

include include int main if num 10 2 while num printf 是偶數reverse d n reverse return 0 include include int odd int num 對num第二位進行判斷奇偶性,是奇數則返回1偶數返回0 int ...

急求一道c語言程式設計題,急求一C語言程式設計題答案

include include define change 0 int main void 急求一道c語言程式設計題 實在抄不好意思,寫的太匆忙,考慮bai不仔細,剛修改了,程式中對大du寫小寫字母都可zhi以按你給的dao要求進行轉換了 include include define change ...

求解一道簡單的C語言題,求解一道簡單C語言題

一 輸入十進位制,輸出 八 十 十六進位制。include int main void 例子 16 八進位制 20 十進位制 16 十六進位制 10 press any key to continue二 輸入二進位制,輸出 八 十 十六進位制 include include include int ...