組合語言程式題目請教求高人解答,組合語言程式的一道題。求高手解答!!!

時間 2021-05-07 20:01:30

1樓:萬世流香

1data segment

src db 'how are you?'

des db 'are'

data ends

stack segment stack

db 200 dup(0)

stack ends

code segment

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

mov ds,ax

mov es,ax

mov si,offset src

mov di,offset des

lop: mov cx,3

cldrepz cmpsb

cmp cx,0

jz next

mov di,offset des

add si,cx ;si-(3-cx)+1sub si,2

jmp lop

next: and dh,0

mov dx,si ;si存放'are'出現的末位置

sub dl,3

add dl,30h ;顯示位'are'的起始位置mov ah,2

int 21h

mov ah,4ch

int 21h

code ends

end start

2data segment

buffer db 'how are you',00hdata ends

stack segment stack

db 200 dup(0)

stack ends

code segment

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

mov ds,ax

mov si,offset buffer

lop1: mov bl,[si]

cmp bl,20h

jnz next ;如果為逗號,將後面的資料前移mov di,si

lop2: mov bl,[di+1]

mov [di],bl

inc di

mov bl,[di]

cmp bl,0h ;如果為00,跳出內迴圈jnz lop2

next: inc si

mov bl,[si]

cmp bl,0h ;如要[si]小於為00h,跳出迴圈

jnz lop1

mov ah,4ch

int 21h

code ends

end start

3data segment

buf db 60

n db ?

char db 60 dup(0)

str db 'input num:','$'

data ends

stack segment stack

db 200 dup(0)

stack ends

code segment

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

mov ds,ax

mov dx,offset str

mov ah,9

int 21h

mov dx,offset buf

mov ah,10

int 21h

mov ah,2

mov dl,0ah

int 21h

mov dl,0dh

int 21h

mov cl,n

mov si,offset char

and bh,0

mov bl,n

add si,bx

lop1: dec si

mov dl,[si]

mov ah,2

int 21h

loop lop1

mov ah,4ch

int 21h

code ends

end start

4data segment

buf dw 1234h,3456h,2134h,7893h,3456h

result dw 0,0

data ends

stack segment stack

db 200 dup(0)

stack ends

code segment

assume ds:code,ss:stack,cs:codestart: mov ax,data

mov ds,ax

call plus_n

mov si,offset result

mov bx,[si+2]

call display

mov bx,[si]

call display

mov ah,4ch

int 21h

;功能:計算多位元組相加

;入口引數:buf

;出口引數:result

plus_n proc

and dx,0

and ax,0

mov cl,5

mov si,offset buf

lop: add ax,[si]

adc dx,0

inc si

inc si

loop lop

mov si,offset result

mov [si],ax

mov [si+2],dx

retplus_n endp

;功能:顯示十六進數

;入口引數:bx

display proc

mov ch,4

lop1: mov cl,4

rol bx,cl

mov dl,bl

and dl,0fh

add dl,30h

cmp dl,3ah

jb next

add dl,7

next: mov ah,2

int 21h

dec ch

cmp ch,0

jnz lop1

retdisplay endp

code ends

end start

2樓:做而論道

為了儘快得到答案,樓主應該一個、一個的提出問題。

讓一個人編寫五個程式,也太難為大家了。

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

3樓:北極星

你的答案是

抄錯的答案是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

4樓:聲學初學者

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

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

5樓:匿名使用者

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程式

6樓:匿名使用者

用匯編生產baiexe程式

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

dao一的跟著你的程式專走

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

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

以後有不懂的就用debug除錯

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

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

組合語言程式設計 考題,求高手解答 20

7樓:無畏無知者

太多了,沒時間做,很多都是基礎知識,你都不懂還怎麼讀書啊

8樓:匿名使用者

還有更多的題嗎? 很不錯,值得收藏作為練習之用。

.組合語言程式設計考題,求高手解答

9樓:做而論道

一、判斷題(5道小題,共15分)

1、masm組合語言的註釋用分號開始,無所謂英文分號、還是中文分號。(3分)

錯誤2、按照masm語法程式設計時,可以將shl作為8086指令的標號。(3分)

錯誤3、指令「mov ax,ds:[100h]」中,若ds=1400h,則源運算元來自主存實體地址1500h。(3分)

錯誤4、彙編結束end語句表明程式執行到此結束。(3分)

錯誤5、指令的運算元使用儲存器定址方式,說明運算元儲存在主儲存器中。(3分)

正確二、單項選擇題(5道小題,共15分)

1、某個8086儲存單元的邏輯地址為a400h:2400h,其實體地址是__b、a6400h__。(3分)

a、d7000h b、a6400h

c、3d400h d、0a640h

2、在8086處理器中,用來指示當前堆疊頂部的暫存器是__a、sp__。(3分)

a、sp b、ip

c、bp d、ss

3、已知字變數buffer內容等於1234h,儲存於主存資料段偏移地址為5678h位置,

執行指令「mov ax, buffer」後,ax=__c、3412h__。(3分)

a、7856h b、5678h

c、3412h d、1234h

4、組合語言程式定義符號常量max等於100,正確的表達是__a、max = 100__。(3分)

a、max = 100 b、max db 100

c、max dw 100 d、max org 100

5、堆疊的操作原則可以描述為__b、後進後出__。(3分)

a、先進先出 b、後進後出

c、先進後出 d、迴圈

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

10樓:

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

微控制器組合語言程式設計,全國微控制器組合語言程式設計師

org 0000h main mov dptr,3000h clr r0 clr r1 clr r2 mov r3,100 loop mov a,dptr clr c cjne a,0h,loop1 inc r0 djnz r3,loop loop1 rl a jc fushu inc r1 djn...

微機原理組合語言的程式

衛生一報 除錯時需要把中文標點符號改為英文標點符號,否則會出現out of memory的提示資訊 data segment 定義資料段 adr db 10,31,45,67,80,46,0,31,0,77 num equ adr num是資料個數da1 db 0 da1用來存放正數的個數,初值為0...

組合語言原程式,彙編程式,程式的彙編三者有什麼區別

組合語言源程式 將可執行檔案機器碼反彙編得到的彙編 會得到一大堆簡單的 難懂的 組合語言指令 彙編程式 用組合語言編寫的程式 程式的彙編 指將高階語言編譯連線生成機器可以直接執行的 的過程 組合語言源程式 將可執行檔案機器碼反彙編得到的彙編 彙編程式 用組合語言編寫的程式。程式的彙編 將高階語言或者...