導航:首頁 > 解決方法 > 匯編怎麼做簡單方法

匯編怎麼做簡單方法

發布時間:2023-01-10 06:55:22

1. 兩個 簡單的匯編 編程

也不給點分數,下回記得啊!!呵呵!!
第一個思想很簡單嘛(不就是循環比較嗎?),流程圖我畫的顯示不出來.很簡單的你自己想一下吧.
data segment
arry dw 10,?,11,-45,56,96,-96,32,-98,1,-23,-63
data ends
code segment
assume ds:data,cs:code
start :
mov ax ,data
mov ds ,ax
lea si,arry
mov word ptr [si+2],0
mov cx,word ptr [si]
add si,2
loop1:
add si,2
cmp word ptr [si],0
jnl loop2
inc [arry+2]
loop2:
loop loop1
mov ax,4c00h;
int 21h
code ends
end start

第二個:
data segment
names db 0dh,0ah,'123456','$';將它改為你要的人名
num db 0dh,0ah,'456789','$';將它改為學號
string1 db 0dh,0ah,'please input again:','$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
loop1:
mov ah,1
int 21h
cmp al,'1'
jz output1
cmp al,'2'
jz output2
mov ah,09h
mov dx,offset string1
int 21h
jmp loop1
output1:
mov ah,09h
mov dx,offset names
int 21h
jmp out1
output2:
mov ah,09h
mov dx,offset num
int 21h
out1:
mov ax,4c00h
int 21h
code ends
end start

2. 匯編語言程序設計的一般步驟是什麼

匯編語言程序設計的基本步驟 了解了匯編語言指令的功能和用法,了解了匯編語言程序的編寫格式,就可以編制完整的匯編語言程序了。一個程序通常具有順序、分支、循環和子程序4種結構形式。順序程序結構就是指完全按順序逐條執行的指令序列。在程序設計過程中,順序結構大量存在,屢見不鮮。但一個完整的程序只是逐條去執行指令,這非常少見。常見的程序結構,是上述4種結構的混合體。一般來說,編制一個匯編語言程序的步驟如下:(1) 分析題意,確定演算法或演算法思想。演算法是指解決問題的方法和步驟。比如現有的一些計算方法和日常生活中解決問題的邏輯思維推理方法等。(2) 根據演算法畫出流程圖,簡單的情況也可不畫。畫出描述演算法的流程圖,可以首先從圖上檢驗演算法的正確性,減少出錯的可能,使得動手編寫程序時的思路更加清晰。(3) 分配存儲空間和工作單元,合理地使用寄存器。分配存儲空間和工作單元,是指存儲空間的分段和數據定義。另外,由於寄存器的數量有限,編寫程序時經常會感到寄存器不夠用。因此,對於位元組數據,要盡量使用8位寄存器。而採用適當的定址方式,也會達到節省寄存器的目的。(4) 根據流程圖編寫程序。這是編制匯編語言程序最為重要的一步。演算法里規定的功能,是要通過一條條指令描述出來的。為了提高編程能力,對於初學者,一是要多閱讀現有的程序,以學習別人的編程經驗;而更為重要的是,必須多親自動手編寫,不要怕失敗,只有通過無數次失敗,才能從中積累自己的編程經驗。(5) 上機調試運行程序。通過匯編的源程序,只能說明它裡面不存在語法錯誤。但是它是否能達到演算法所要求的預期效果,還必須經過上機調試,用一些實驗數據來測試,才能夠真正地得出結論。可以這么說,即使是一個非常有經驗的程序員,也沒有百分之百的把握說他編寫的程序一次就成功。 用流程圖表示演算法 流程圖用一些圖形框來代表各種操作。用圖形表示演算法,直觀形象,可以用來幫助人們對演算法的理解。下圖給出了一些常用的流程圖符號。

上圖中的判斷框(菱形)用來對一個給定的條件作出判斷,以決定如何執行其後的操作。它有一個入口,兩個出口,如下圖(a)所示。

連接點(圓圈)是用來將畫在不同地方的流程線連接起來。例如在下圖(b)里,有兩個圈裡寫著數字1的圓圈,它表示是從左邊的1出來,進到右邊圖的1里(這由流程線的方向給出)。可以看出,這兩個點其實就是同一個點,只是由於畫不下而分開來畫的。用連接點,可以避免流程圖中的流程線相互交叉或過長,從而使流程圖清晰。

注釋框不是流程圖中必需的部分。在流程圖中使用它,是為了對流程圖中的某些框的操作做一些必要的說明,以便使人們能夠更好地通過流程圖來理解演算法。

處理框反映做些什麼樣的操作,如把某個單元的內容送入某個寄存器,從某個存儲單元取出數據等。它是流程圖里最為本質的、出現最多的圖形框。

輸入/輸出框反映程序的輸入和輸出情況。計算機程序無外乎接收數據,進行處理,然後加以輸出,所以輸入/輸出框是必不可少的。

3. 匯編語言程序設計步驟 有那幾步

匯編語言程序設計步驟:1、 分析問題,抽象出描述問題的數據模型 2、 確定問題的演算法思想 3、 畫出流程圖或結構圖 4、 分配存儲器和工作單元(寄存器) 5、 逐條編寫程序 6、 靜態檢查,上機調試 例:編程查找考生的最高分,假設所有考生分數已存入計算機內存.1、 分析問題 根據條件、特點、規律 →數學模型 本例分數已給定為0~200之間的整數集合(考慮加試分) ,記為{S},找max{S}(註:簡單問題不一定寫數學模型) .2、 確定演算法思想 最好利用現成演算法和程序設計方法,若無,則需根據實踐經驗總結演算法思想.如本例,從成績單第一分數往下看,邊看邊比較,記住較高分,舍棄較低分,直至看完,最高分存於 腦中.歸納演算法思想:建立數據指針並指向數據區首地址.將第一數取入寄存器(如AL) ,與下一數比較,若下一數大則將其取入寄存器,否則調整指針,再與下一數比較,重復上述 直至比較完畢,寄存器中即最高分.讀分數用MOV指令,比較用CMP指令,分析判斷用條件轉移指令.3、 畫流程圖或結構圖 有邏輯流程、演算法流程、程序流程等,復雜問題需畫模塊結構.本例簡單,只畫出程序 流程圖(用模塊化結構的N-S流程圖表示) :本例的N-S流程圖 圖中初始化包括:設一個計數器,將分數個數減一後送計數器,每比較一次減一,至 零查找結束;建立一個指針指向數據區.開始 初始化 取第一數到寄存器 與下一數比較 下一數大?是 否 取大數到寄存器 修改指針,計數次數減一 返回到循環體開始,直到計數次數為0退出循環 結束 4、 分配存儲器空間和工作單元(寄存器) 定義數據段、堆棧段、代碼段等.工作單元一般用寄存器.本例:分數放數據段,建100 位元組堆棧空間,BX作數據指針,CX作計數器,AL放最高分.5、 逐條編寫程序 DATA SEGMENT FEN DB 85,90,60,75,87,35,80,78,96,82…… ;存分數 MAX DB ;存最高分 DATA ENDS STACK SEGMENT PARA STACK 『STACK』 DB 100 DUP(?) ;100位元組堆棧 STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START PROC FAR PUSH DS MOV AX,0 PUSH AX ;為了返回DOS MOV AX,DATA MOV DS,AX ;置數據段寄存器 MOV BX,OFFSET FEN ;置數據指針 MOV CX,MAX-FEN ;置計數器初值 DEC CX ;N個分數比較N-1次 MOV AL,[BX] ;取第一個分數 LOP:INC BX ;調整指針 CMP AL,[BX] ;與下一數比較 JAE NEXT ;大於等於則轉 MOV AL,[BX] ;否則取下一數 NEXT:LOOP LOP ;計數器減一,;不為零轉LOP MOV MAX,AL ;存放最高分 RET ;返回DOS START ENDP CODE ENDS END START 6、 靜態檢查,上機調試 選用指令盡量位元組少,使其執行速度快.易錯處應重點查,如比較次數、轉移條件等.確信無錯後方可上機調試.

4. 簡單匯編語言實例

(1)判斷雙字的高位字是不是1,如果不是,直接返回
(2)清除進位標志
(3)將低字求反,然後 +1
(4)將進位保存起來
(5)將高位字求反,加上剛才的進位
--------------
XXXX:
MOV AX, X + 1 ;取 X 的高位字
CMP AX, 32768
JB X_EXIT ;是正數就跳轉

MOV AX, X ;取 X 的低位字
XOR AX, 0FFFFH ;取反
ADD AX, 1
PUSHF
MOV X, AX

MOV AX, X + 1 ;取X 的高位字
XOR AX, 0FFFFH ;取反
POPF
ADC AX, 0
MOV X + 1, AX

X_EXIT:
RET

5. 如何編寫最簡單的匯編語言

首先明白編譯環境:以上4個exe程序必須在32機中運行,若是64位機,請參照dosbox0.74(如何在64位機中使用debug)使用方法

了解計算機CPU原理:詳情請參照「80X86計算機組織」和「80X86的指令系統和定址方式」

首先有一道題:

求表達式Y=A*X+B-C的值,已知A、B、C分別存放在DA-1、DA-2、DA-3位元組單元,它們的值分別是:5 、 6、 7,X存放在INPUT位元組單元,結果Y放入JSJ_10位元組單元。

分析順序結構程序代碼:由記事本敲出來的

data segment da_1 db 5 da_2 db 6 da_3 db 7 input db 1 jsj_10 db 0data ends ;這一段在內存中定義了一個段,叫做data,並且其中存入了5個變數並且付入初值,db代表每個變數佔用1個位元組,若是dd則為字,為2個位元組code segment ;名字叫做code的段的定義,顯然這兒作為代碼段,當然code這個名字可以更改 assume cs:code,ds:data ;指定data為DS數據段,code為CS代碼段start: mov ax,data ;加法指令 mov ds,ax ;加法指令 mov al,da_1 ;加法指令

mov bl,input ;加法指令

mul bl ;乘法 add al,da_2 sub al,da_3 ;減法 mov jsj_10,al

exit: mov ah,4ch int 21h ;這兩行相當於ret(返回值),就像C語言中的return 0;

code ends end start

注釋: XXXX segment

.............

XXXX ends ;定義一個段

assume ds:XXXX 把XXXX段指定為ds(ds是段地址寄存器)

請先提前把masm edit debug link文件放入預定的文件夾,並把編寫的xxxx.asm代碼文件放入該文件夾,asm文件可用記事本寫成,並改格式txt為asm(有的看不到文件後綴.txt的請參照網路)

6. 匯編語言程序的開發有哪4個步驟

匯編語言程序設計的基本步驟:
1.
分析問題
先全面分析題目,看它給出了什麼條件,有什麼特點,找出規律,歸納出數學模型,也可能有些問題不用寫出數學模型或寫不出數學模型。
2.確定演算法
有了數學模型,或雖然沒有數學模型但已把題目分析清楚了,就選擇一個合適的演算法和適當的數據結構。如果沒有可供選用的現成的演算法和結構,就需要針對具體問題設計一個演算法或結構。
3.繪制流程圖
流程圖就是用圖形的方式把解決問題的演算法直觀地描述出來。對於一個比較復雜的問題,畫出流程圖,這有助於對問題的理解以及有助於編寫出正確的程序。當然,如果演算法比較簡單,也可不畫流程圖。
4.分配存儲空間和工作單元
用匯編語言編寫程序時,需要給程序中的變數指定內存單元地址或指定寄存器。
5.編寫程序
要把題目中需要處理的數據合理地根據2、3、4步的工作,選用適合的指令,並按一定的語法規則編寫相應的程序。
6.靜態檢查
靜態檢查就是用人工的方式檢查程序是否有錯誤,包括演算法錯誤和語法錯誤等,如果有錯誤,及時改正過來。
7.上機調試運行
任何程序必須經過調試,才能檢查出解題目的是否正確以及程序是否符合設計思想。

閱讀全文

與匯編怎麼做簡單方法相關的資料

熱點內容
anica迷你手機設置日期方法 瀏覽:409
銅線和鋁線連接正確方法家用 瀏覽:118
德育如何掌握人際交往的方法 瀏覽:899
白兔的探視用說明方法怎麼描寫 瀏覽:111
中深孔采礦是什麼采礦方法 瀏覽:229
oppo顯示電量百分比在哪裡設置方法 瀏覽:927
電話銷售如何開發新客戶的方法 瀏覽:543
默認簡訊在哪裡設置方法 瀏覽:645
治療腳跟骨刺的好方法 瀏覽:914
風管漏風檢測方法 瀏覽:253
東風菱智車頂棉安裝方法 瀏覽:571
什麼方法能讓嬰兒去痰 瀏覽:258
羽毛球的使用方法 瀏覽:581
接球技術包括哪些技術方法 瀏覽:79
臉頰周圍長痘解決方法 瀏覽:73
水電瓶充電視頻教學方法 瀏覽:524
丙肝修復最佳方法 瀏覽:816
棗片的作用及食用方法 瀏覽:3
初中生如何復習的方法 瀏覽:306
聽神經瘤治療方法 瀏覽:293