當前位置:首頁 » 編程軟體 » 匯編語言編程

匯編語言編程

發布時間: 2022-01-15 15:06:15

A. 匯編語言編程,寫代碼

;---------------------------
ASSUME CS:CC, DS:QW
;---------------------------
QW SEGMENT
M_1 DB 12, 13, 10, -5, -85, 37, 92, -25, 94, 10, -36
DB 1, 100, 12, -37, 85, -6, 28, 125, 34, 17, -92
LLL EQU $ - M_1
M_P DB 101 DUP(0)
M_N DB 101 DUP(0)

MSG DB 13, 10, 'Press any key to continue ... $'

O_P DB 13, 10, '+$'
O_N DB 13, 10, '-$'
QW ENDS
;---------------------------
CC SEGMENT
START:
MOV AX, QW
MOV DS, AX
;
CALL TONGJI
CALL DISPLAY

EXIT:
LEA DX, MSG
MOV AH, 9
INT 21H
MOV AH, 7
INT 21H

MOV AH, 4CH
INT 21H ;返回DOS
;---------------------------
TONGJI:
MOV BX, OFFSET M_1
MOV SI, OFFSET M_P
MOV DI, OFFSET M_N
MOV CX, LLL
LP: MOV AL, [BX]
CMP AL, 128
JB ZHENG
MOV [DI + 1], AL
INC DI
INC M_N
JMP NEXT
ZHENG:
MOV [SI + 1], AL
INC SI
INC M_P
NEXT:
INC BX
LOOP LP
RET
;---------------------------
DISPLAY:
LEA DX, O_P
MOV AH, 9
INT 21H
MOV AL, M_P
MOV AH, 0
CALL OUTPUT
LEA DX, O_N
MOV AH, 9
INT 21H
MOV AL, M_N
MOV AH, 0
CALL OUTPUT
RET
;---------------------------
OUTPUT:
MOV BX, 10
MOV CX, 0
OL1:MOV DX, 0
DIV BX
ADD DL, '0'
PUSH DX
INC CX
CMP AX, 0
JNZ OL1
MOV AH, 2
OL2:POP DX
INT 21H
LOOP OL2
RET
;---------------------------
CC ENDS
END START
;---------------------------

程序執行結果如下:

C:\MASM>ww

+15
-7
Press any key to continue ...

C:\MASM>

B. 用匯編語言編程 (簡單)

CODESEGMENT
ASSUMECS:CODE
START:
MOVSI,0F05EH
MOVCX,16
@0:
ROLSI,1
JC@1
MOVAH,2
MOVDL,'0'
INT21H
JMP@2
@1:
MOVAH,2
MOVDL,'1'
INT21H
@2:
LOOP@0
MOVAH,4CH
INT21H
CODEENDS
ENDSTART

C. 用匯編語言編程

CODESEGMENT
ASSUMECS:CODE

BUFDB50DUP(?)
BUF1DB50DUP(?)

START:PUSHCS
POPDS
PUSHCS
POPES
;==============隨機生成50個數
LEADI,BUF
MOVCX,50
CLD
@1:
CALLRAND
STOSB
MOVAX,2
CALLDELAY_PROC
LOOP@1
;===============輸出這50個數
CALLLFCR
LEASI,BUF
MOVCX,50
CLD
@11:
LODSB
CALLDSPAL
LOOP@11

;================轉為bcd碼保存
LEASI,BUF
LEADI,BUF1
MOVCX,50
CLD
@2:
LODSB
MOVAH,0
MOVBL,10
DIVBL
SHLAL,4
ADDAL,AH
STOSB
LOOP@2
;===============輸出bcd數
CALLLFCR
LEASI,BUF1
MOVCX,50
CLD
@3:
MOVAX,CX
MOVBL,10
DIVBL
ORAH,AH
JNE@4
CALLLFCR
@4:
LODSB
RORAL,4
PUSHAX
MOVDL,AL
ANDDL,0FH
ORDL,30H
MOVAH,2
INT21H
POPAX
RORAL,4
MOVDL,AL
ANDDL,0FH
ORDL,30H
MOVAH,2
INT21H
MOVDL,'H'
INT21H
MOVDL,32
INT21H
LOOP@3

MOVAH,4CH
INT21H

;===============================================================
DELAY_PROCPROCNEAR;延遲子程式,延遲ax/18秒
PUSHES
PUSHDX
MOVDX,40H
MOVES,DX
MOVDX,ES:[006CH];取系統1/18秒計數
ADDDX,AX;延時x/18
DELAY10:
CMPES:[006CH],DX;時限到了?
JBEDELAY10;沒
POPDX
POPES
RET
DELAY_PROCENDP
;============================================================
RANDPROCNEAR
;利用時鍾的低位反轉除100的余數作為隨機數
;隨機數在ax中帶回
PUSHBX
PUSHCX
PUSHDX
PUSHF
MOVAH,0
INT1AH
;MOVAX,CX
MOVBX,DX
MOVCX,16
@RAND1:
RORBX,1
RCLAX,1
LOOP@RAND1
MOVDX,0
MOVBX,100
DIVBX
MOVAX,DX
POPF
POPDX
POPCX
POPBX
RET
RANDENDP
;==================================
LFCR:PUSHAX
PUSHDX
MOVAH,2
MOVDL,13
INT21H
MOVDL,10
INT21H
POPDX
POPAX
RET
;=================================
DSPALPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHF
XORAH,AH
XORCX,CX
MOVBL,10
@DSPAL1:
DIVBL
INCCX
MOVDL,AH
XORAH,AH
ORDX,30H
PUSHDX
CMPAL,0
JNE@DSPAL1
MOVAH,2
@DISPAL2:
POPDX
INT21H
LOOP@DISPAL2
MOVDL,32
INT21H
POPF
POPDX
POPCX
POPBX
POPAX
RET
DSPALENDP
;================================
CODEENDS
ENDSTART

D. 匯編語言編程

很顯然不是,最低級的語言應該是機器語言,都是0或1的機器碼。匯編語言也算是低級語言,高級語言包括C語言、C++、VB、VC++、java等,匯編語言效率抄很高,學習微機原理時匯編語言是必須要學習的,執行的時候需要進行匯編,所謂匯編,就是把匯編語言翻譯成計算機能夠看懂的語襲言,也就是機器語言。同理,像您用C語言編的程序就需要編譯也是這個道理。不過匯編語言比較繁瑣,知你編的程序另外一個人不大可能看懂,但高級語言別人是能夠很快看明白的,道所以安全性只是相對的,很多應用軟體的源代碼你是看不到的,也就無所謂安全不安全了

E. 什麼是匯編語言 計算機編程語言有哪些

匯編語言(Assembly Language)是面向機器的程序設計語言.匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬體特性並能直接控制硬體的語言。匯編語言」作為一門語言,對應於高級語言的編譯器,需要一個「匯編器」來把匯編語言原文件匯編成機器可執行的代碼。高級的匯編器如MASM, TASM等等為我們寫匯編程序提供了很多類似於高級語言的特徵,比如結構化、抽象等。在這樣的環境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經類同於高級語言。現在的匯編環境已經如此高級,即使全部用匯編語言來編寫windows的應用程序也是可行的,但這不是匯編語言的長處。匯編語言的長處在於編寫高效且需要對機器硬體精確控制的程序。 在匯編語言中,用助記符(Mnemonic)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。因此匯編語言亦稱為符號語言。 使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟體中語言處理系統軟體。匯編語言編譯器把匯編程序翻譯成機器語言的過程稱為匯編。 匯編語言比機器語言易於讀寫、調試和修改,同時具有機器語言全部優點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴於具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。 匯編語言的特點: 1.面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。 2.保持了機器語言的優點,具有直接和簡捷的特點。 3.可有效地訪問、控制計算機的各種硬體設備,如磁碟、存儲器、CPU、I/O埠等。 4.目標代碼簡短,佔用內存少,執行速度快,是高效的程序設計語言。 5.經常與高級語言配合使用,應用十分廣泛。 匯編語言的應用: 1.70%以上的系統軟體是用匯編語言編寫的。 2.某些快速處理、位處理、訪問硬體設備等高效程序是用匯編語言編寫的。 3.某些高級繪圖程序、視頻游戲程序是用匯編語言編寫的。 匯編語言是我們理解整個計算機系統的最佳起點和最有效途徑 人們經常認為匯編語言的應用范圍很小,而忽視它的重要性。其實匯編語言對每一個希望學習計算機科學與技術的人來說都是非常重要的,是不能不學習的語言。 所有可編程計算機都向人們提供機器指令,通過機器指令人們能夠使用機器的邏輯功能。 所有程序,不論用何種語言編制,都必須轉成機器指令,運用機器的邏輯功能,其功能才能得以實現。 機器的邏輯功能,軟體系統功能構築其上,硬體系統功能運行於下。 匯編語言直接描述機器指令,比機器指令容易記憶和理解。通過學習和使用匯編語言,能夠感知、體會、理解機器的邏輯功能,向上為理解各種軟體系統的原理,打下技術理論基礎;向下為掌握硬體系統的原理,打下實踐應用基礎。 學習匯編語言,向上可以理解軟體,向下能夠感知硬體,是我們理解整個計算機系統的最佳起點和最有效途徑

F. 匯編語言程序編程

我知道:
1)從0200H單元開始有100個數,編一個程序檢查這些數,正數保持不變,負數取補後送回,要求程序框圖和完整程序及每條指令的解釋。
(直接從0398HI單取消,然後進入POUJN腳本,改485這個值就可以了)

2)已知數組A和數組B分別包含50和20個互不相等的帶符號數(16位)編程將在A中但不在B中出現的數存入數組C中。要求同上。
(直接把A用C0998H這個值改為20和50之間)

3)在首地址為TABLE的數組中存放著200個16位帶符號數,以補碼表示,找出最大最小數,出現次數最多數及該數出現的次數,依次存放於以RESULT開始的單元內。要求同上。
(把RESUL用POUJN腳本改成TABLE,然後存取,不能出現2個偶數學,最後把00100這個函數給刪除了)

以上就基本是這樣了,看不懂沒關系,關鍵是互相學習。

G. 匯編語言 編程

assume cs:code
data segment
buf dw a1,a2,....,a20 ;這里不給出具體數據
sum dw 0
data ends
start:
mov bx,offset buf
mov si,0
mov dx,0
mov cx,20
again:
mov dx,sum
add dx,[bx+si]
mov sum,dx
add si,2
loop again
mov ax,4c00h
int 21h
code ends
end start

H. 匯編語言編程

dsegsegment
s0db'inputmonth(01-12):$'
s1db0dh,0ah,'$'
ndb3
db0
db3p(0)
n0dw0
smonthdb'Jan.$'
db'Feb.$'
db'Mar.$'
db'Apr.$'
db'May.$'
db'Jun.$'
db'Jul.$'
db'Aug.$'
db'Sep.$'
db'Oct.$'
db'Nov.$'
db'Dec.$'
dsegends

csegsegment
assumecs:cseg,ds:dseg
start:
movax,dseg
movds,ax

callinput

movah,9;newline
leadx,s1;
int21h;

calllocate
calldisplay

movax,4c00h
int21h

;saveinputnumberton0
inputprocnear
leadx,s0
movah,9
int21h

movah,10
leadx,n
int21h

xorcx,cx
movcl,n+1
movsi,2
xorax,ax
movbx,10
c0:
moval,[n+si]
andal,0fh
xchgax,n0
mulbx
xchgax,n0
addn0,ax
incsi
loopc0
ret
inputendp

;returnthepositionin(bx)
locateprocnear
movbl,5
movax,n0
decax
mulbl
movbx,ax
ret
locateendp

;displaythestring
;(bx)
displayprocnear
leadx,smonth[bx]
movah,9
int21h
ret
displayendp

csegends
endstart

I. 用匯編語言編程,詳細些

又是跟我一樣,對匯編什麼也不懂的人。
對匯編我照著書還能寫一下..但是太麻煩了。
不過給你點提示吧:用test指令測試。
要測試第一位是否為1,則test ah,80h ;也就是二進制的10000000
要測試哪一位,那一位置1
測第3位 test ah,20h ;二進制的00100000
測第5位 test ah,08h ;二進制的00001000
如果測試結果為0,那麼相應的那一位則為0,若測試結果不為0,那麼相就的那一位則為1.
判斷為1:test ah,80h ;8位嘛,肯定是存在ah寄存器里的
jz iszero ;測試位為0則跳轉到iszero標記
剩下的自己寫吧,我打了這么多字!!

熱點內容
伺服器地址怎麼設置成域名 發布:2024-12-23 12:51:22 瀏覽:217
理財金額怎麼配置 發布:2024-12-23 12:44:18 瀏覽:69
aspnet文件訪問 發布:2024-12-23 12:39:02 瀏覽:154
搭建郵件伺服器的方法 發布:2024-12-23 12:27:27 瀏覽:430
資料庫說明文檔 發布:2024-12-23 12:22:12 瀏覽:620
安卓手機玩mc卡怎麼辦 發布:2024-12-23 12:15:46 瀏覽:5
mt編譯時出現錯誤信息 發布:2024-12-23 12:15:45 瀏覽:107
雙存儲冗餘 發布:2024-12-23 12:09:16 瀏覽:664
解壓縮太慢 發布:2024-12-23 12:08:36 瀏覽:535
linux恢復誤刪文件 發布:2024-12-23 11:59:36 瀏覽:493