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...
組合語言原程式,彙編程式,程式的彙編三者有什麼區別
組合語言源程式 將可執行檔案機器碼反彙編得到的彙編 會得到一大堆簡單的 難懂的 組合語言指令 彙編程式 用組合語言編寫的程式 程式的彙編 指將高階語言編譯連線生成機器可以直接執行的 的過程 組合語言源程式 將可執行檔案機器碼反彙編得到的彙編 彙編程式 用組合語言編寫的程式。程式的彙編 將高階語言或者...