找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4358|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

匯編語(yǔ)言常見(jiàn)例子

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:60076 發(fā)表于 2014-4-30 18:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

1、編寫程序計(jì)算Z=(X*X-3*Y)/2
DATA    SEGMENT
X    DB    25
Y    DB    32
Z    DW    ?
DATA    ENDS

CODE    SEGMENT
     ASSUME    CS:CODE,DS:DATA
START:    MOV    AX,DATA
     MOV    DS,AX
     MOV    AL,X
     MUL    AL
     MOV    BX,0
     MOV    BL,Y
     ADD    BL,BL
     ADC    BH,0
     ADD    BL,Y
     ADC    BH,0
     SUB    AX,BX
     SHR    AX,1
     MOV    Z,AX
     MOV    AH,4CH
     INT    21H
CODE    ENDS
     END    START
2、編寫程序完成多字節(jié)相加
DATA    SEGMENT
DAT1    DB    5EH,89H
DAT2    DB    40H,OABH
DAT3    DW    ?
DATA    ENDS
CODE    SEGMENT
     ASSUME    CS:CODE,DS:DATA
START:    MOV    AX,DATA
     MOV    DS,AX
     MOV    SI,0
     MOV    AL,DAT1[SI]
     MOV    AL,DAT2[SI]
     MOV    DAT3[SI],AL
     INC    SI
     MOV    AL,DAT1[SI]
     ADC    AL,DAT2[SI]
     MOV    DAT3[SI],AL
     MOV    AH,4CH
     INT    21H
CODE    ENDS
     END    START
3、查表求平方和
DATA    SEGMENT
TABL    DB    0,1,4,9,16,25,36,49
     DB    64,81,100,121,144,169,225
XD    DB    ?
YD    DB    ?
DATA    ENDS
STACK    SEGMENT    STACK    'STACK'
STA    DB    50    DUP    (?)
TOP    EQU    LENGTH    STA
STACK    ENDS
CODE    SEGMENT   
     ASSUME    CS:CODE,DS:DATA,SS:STACK
START:    MOV    AX,DATA
     MOV    DS,AX
     MOV    AX,STACK
     MOV    SS,AX
     MOV    SP,TOP
     MOV    BX,OFFSET    TABL
     MOV    AH,0
     MOV    AL,XD
     ADD    BX,AX
     MOV    AL,[BX]
     MOV    YD,AL
     MOV    AH,4CH
     INT    21H
CODE    ENDS
     END    START
4、源數(shù)據(jù)塊和目的數(shù)據(jù)塊是否有重疊來(lái)決定采用增址還是減址方式傳送
DATA    SEGMENT
STRG    DB    1000    DUP(?)
BLOK1    EQU    STRG+5
BLOK2    EQU    STRG+10
BLENG    EQU    100
DATA    ENDS
CODE    SEGMENT
     ASSUME    CS:CODE,DS:DATA,ES:DATA
START:    MOV    AX,DATA
     MOV    DS,AX
     MOV    ES,AX
     MOV    CX,BLENG
     MOV    SI,OFFSET    BLOK1
     MOV    DI,OFFSET    BLOK2
     CLD
     PUSH    SI
     ADD    SI,BLENG-1
     CMP    SI,DI
     POP    SI
     JB    GO
     STD
     ADD    SI,BLENG-1
     ADD    DI,BLENG-1
GO:    REP    MOVSB
     MOV    AH,4CH
     INT    21H
     CODE    ENDS
     END    START
5、找出最大數(shù)和最小數(shù)
DATA    SEGMENT
BUF    DB    -2,+5,-128
     DB    +127,80,-70
COUN    EQU    $-BUF
MAX    DB    ?
MIN    DB    ?
DATA    ENDS
STACK    SEGMENT    STACK
STR    DB    64H    DUP(?)
STACK    ENDS
MYCODE    SEGMENT
     ASSUME    DS:MYCODE,DS:DATA,SS:STACK
START:    MOV    AX,DATA
     MOV    DS,AX
     MOV    AX,STACK
     MOV    SS,AX
     MOV    SP,LENGTH    STR
     MOV    CX,COUN-1
     MOV    SI,OFFSET    BUF
     MOV    AL,[SI]
     MOV    BL,[SI]
     INC    SI
LOP:    CMP    AL,[SI]
     JGE    NEXT1
     MOV    AL,[SI]
NEXT1:    CMP    BL,[SI]
     JL    NEXT
     MOV    BL,[SI]
NEXT:    INC    SI
     LOOP    LOP
     MOV    MAX,AL
     MOV    MIN,BL
     MOV    AH,4CH
     INT    21H
MYCODE    ENDS
     END    START
6、三路分支結(jié)構(gòu)程序
DATA    SEGMENT
DATX    DB    -3
DATY    DB    ?
DATA    ENDS
CODE    SEGMENT
     ASSUME    CS:CODE,DS:DATA
START:    MOV    AX,DATA
     MOV    DS,AX
     MOV    AL,DATX
     CMP    AL,0
     JGE    BIGER
     MOV    AL,0FFH
     MOV    DATY,AL
     JMP    NEXT
BIGER:    JE    EQUL
     MOV    AL,1
     MOV    DATY,AL
     JMP    NEXT
EQUL:    MOV    DATY,AL
NEXT:    MOV    AH,4CH
     INT    21H
CODE    ENDS
     END    START
7、利用跳轉(zhuǎn)實(shí)現(xiàn)多分支結(jié)構(gòu)
DATA    SEGMENT
ADRTAB    DW    R0,R1,R2,R3,R4,R5,R6,R7,R8,R9
TEN    DB    ?
DATA    ENDS
STACK    SEGMENT    PARA    STACK    'STACK'
STA    DB    100    DUP(?)
STACK    ENDS
CODE    SEGMENT
     ASSUME    CS:CODE,DS:DATA,SS:STACK
START:    MOV    AX,DATA
     MOV    DS,AX
     MOV    AX,STACK
     MOV    SS,AX
     MOV    SP,LENGTH    STA
     MOV    AH,01
     INT    21H
COMPUT:    MOV    AH,0
     AND    AL,0FH
     ADD    AL,AL
     MOV    BX,OFFSET    ADRTAB
     ADD    BX,AX
     MOV    AX,[BX]
     JMP    AX
R0:
R1:
R2:
R3:
R4:
R5:
R6:
R7:
R8:
R9:
     MOV    AH,4CH
     INT    21H
CODE    ENDS
     END    START
8、計(jì)算累加和
DATA    SEGMENT
SUM    DW    ?
DATA    ENDS
CODE    SEGMENT
     ASSUME    CS:CODE,DS:DATA
START:    MOV    AX,DATA
     MOV    DS,AX
     MOV    AX,0
     MOV    CX,100
AGAIN:    ADD    AX,CX
     DEC    CX
     JNZ    AGAIN
     MOV    SUM,AX
     MOV    AH,4CH
     INT    21H
CODE    ENDS
     END    START
9、計(jì)算一個(gè)數(shù)中1的個(gè)數(shù)
DATA    SEGMENT
X    DW    31A0H
RESULT    DW    ?
DATA    ENDS
CODE    SEGMENT
     ASSUME    CS:CODE,DS:DATA
START:    MOV    AX,DATA
     MOV    DS,AX
     MOV    CX,0
     MOV    AX,X
AGAIN:    AND    AX,AX
     JZ    EXIT
     SHL    AX,1
     JNC    NEXT
     INC    CX
NEXT:    JMP    AGAIN
EXIT:    MOV    RESULT,CX
     MOV    AH,4CH
     INT    21H
CODE    ENDS
     END    START
10、求一列數(shù)的累加和
DATA    SEGMENT
BLOCK    DW    0028H,0FF18H,1005H,7823H,0
     DW    0CDABH,0FFFFH,1122H,3344H,7892H
COUN    EQU    ($-BLOCK)/2
SUM    DW    ?
DATA    ENDS
STACK    SEGMENT    PARA    STACK    'STACK'
STA    DW    100    DUP(?)
TOP    EQU    SIZE    STA
STACK    ENDS
CODE    SEGMENT
     ASSUME    CS:CODE,DS:DATA,SS:STACK
START:    MOV    AX,DATA
     MOV    DS,AX
     MOV    AX,STACK
     MOV    SS,AX
     MOV    SP,TOP
     MOV    AX,0
     MOV    SI,OFFSET    BLOCK
     MOV    CX,COUN
LOP:    ADD    AX,[SI]
     ADD    SI,2
     LOOP    LOP
     MOV    SUM,AX
     MOV    AH,4CH
     INT    21H
CODE    ENDS
     END    START
11、延時(shí)程序
TIMEDLY    PROC
     MOV    BX,100
DELAY:    MOV    CX,5882
DELAYO:    LOOP    DELAYO
     DEC    BX
     JNZ    DELAY
     RET
TIMEDLY    ENDP
12、冒泡排序法
DATASEG    SEGMENT
ARRAY    DW    1234H,5437,7FFFH,0FFFFH,0AB55
     DW    05FFH,7832H,0,9043H,5634
COUN    EQU    ($-ARRAY)/2
DATASEG    ENDS
STACKSEG    SEGMENT    PARA    STACK    'STACK'
STAPN    DB    100    DUP(?)
TOP    EQU    LENGTH    STAPN
STACKSEG    ENDS
PROGRAM    SEGMENT
     ASSUME    CS:PROGRAM,DS:DATASEG,SS:STACKSEG
START:    MOV    AX,DATASEG
     MOV    DS,AX
     MOV    AX,STACKSEG
     MOV    SS,AX
     MOV    AX,TOP
     MOV    SP,AX
     MOV    BL,0FFH
A1:    CMP    BL,0FFH
     JNE    A4
     XOR    BL,BL
     MOV    CX,COUN-1
     XOR    SI,SI
A2:    MOV    AX,ARRAY[SI]
     CMP    AX,ARRAY[SI+2]
     JGE    A3
     XCHG    ARRAY[SI+2],AX
     MOV    ARRAY[SI],AX
     MOV    BL,0FFH
A3:    INC    SI
     INC    SI
     LOOP    A2
     JMP    A1
A4:    MOV    AH,4CH
     INT    21H
PROGRAM    ENDS
     END    START

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表