當前位置:編程學習大全網 - 編程語言 - 高分懸賞,匯編語言高手進

高分懸賞,匯編語言高手進

1. 用DEBUG編寫程序,在屏幕上顯示壹個字符串HELLO!,並以A.COM為文件名存盤

復制下面的文本內容,粘貼於記事本(註意:不要刪除中間的空行),保存為A.TXT,然後在DOS提示符下輸入:DEBUG <A.TXT,Ok。

e10d 'HELLO!$'

a100

lea dx,[10d]

mov ah,9

int 21

mov ax,4c00

int 21

rbx

0

rcx

14

na.com

w100

q

-----------------------------------------

2. 編寫完整匯編程序,將內存中10個有符號數求和。

; 下面的程序是16位匯編,編譯通過,運行正確。

; Program Name: Adding.asm

Adding SEGMENT

ASSUME CS:Adding,DS:Adding

ORG 100H

Start: jmp Begin

Decimal DW 780,-370,266,48,-127,890,21,640,-1023,513 ; 10個有符號數

Deci_Sum DW ?

Begin: lea si,Decimal

cld

mov cx,9

lodsw

Adding0: add ax,[si]

inc si

inc si

loop Adding0

mov [si],ax

Exit_Proc: mov ax,4c00h ;結束程序

int 21h

Adding ENDS

END Start

-----------------------------------------

3. 編寫完整程序將內存中壹個無符號字節數以16進制的形式顯示在屏幕上

; 下面的程序是16位匯編,編譯通過,運行正確。

; Program Name: Hex_ASCII.asm

Hex_ASCII SEGMENT

ASSUME CS:Hex_ASCII,DS:Hex_ASCII

ORG 100H

Start: jmp Begin

DecimalNum db 76 ;無符號字節數

Change_Hex proc near

cmp al,9

ja Charactor

or al,30h

stosb

ret

Charactor: sub al,9

or al,40h

stosb

ret

Change_Hex endp

ChangeHex0 proc near

xor ah,ah

mov cl,4

shl ax,cl

shr al,cl

xchg ah,al

call Change_Hex

xchg ah,al

call Change_Hex

ret

ChangeHex0 endp

Begin: lea di,HeximalASC ;顯示十六進制符號字符串地址

cld ;設置變址寄存器變址方向

mov al,DecimalNum

call ChangeHex0

mov al,'$'

stosb

lea dx,HeximalASC ;字符串首地址

mov ah,9 ; 顯示結果

int 21h

Exit_Proc: mov ax,4c00h ;結束程序

int 21h

HeximalASC:

Hex_ASCII ENDS

END Start

-----------------------------------------

4. 編寫完整匯編程序,統計內存中10個有符號數中正數的個數

; 下面的程序是16位匯編,編譯通過,運行正確。

; Program Name: positive.asm

positive SEGMENT

ASSUME CS:positive,DS:positive

ORG 100H

Start: jmp Begin

Decimal DW 780,-370,266,48,-127,890,21,640,-1023,513 ; 10個有符號數

Deci_Sum DB ? ;正數的個數計數器

Begin: lea si,Decimal

cld

mov cx,10

mov Deci_Sum,0 ;計數器清零

positive0: lodsw

test ax,8000h

jz NextOne

inc Deci_Sum

NextOne: loop positive0

Exit_Proc: mov ax,4c00h ;結束程序

int 21h

positive ENDS

END Start

-----------------------------------------

5. 編寫完整匯編程序,將內存中的5個無符號數從小到大排列

; Program Name: Bubbling.ASM

Bubbling SEGMENT

ASSUME CS:Bubbling,DS:Bubbling,ES:Bubbling

ORG 100H

Start: JMP Begin

Array DB -112,56,72,98,32 ;需要排序的數據

Elem_Num EQU ($-Array)/TYPE Array-1 ;外循環次數

Begin: MOV CX,Elem_Num

Scanning: PUSH CX ;入棧保存外循環次數

LEA SI,Array ;數組首地址裝入源變址寄存器

Compare: PUSH SI

POP DI ;當前數組元素地址賦給目的變址寄存器,以備交換之用

LODSB ;將當前數組元素讀入累加器

CMP AL,[SI] ;當前數組元素與相鄰的下壹個數組元素相比較

JBE NextOne ;若小於或等於,不作數據交換,處理下壹個數組元素

XCHG AL,[SI] ;若大於,交換數組元素

STOSB ;保存數值較小者

NextOne: LOOP Compare ;處理下壹個數組元素

POP CX ;外循環次數出棧

LOOP Scanning ;下壹趟比較

Exit_Proc:MOV AX,4C00H ;結束程序

INT 21H

Bubbling ENDS

END Start

-----------------------------------------

6.編寫完整匯編語言程序,將內存中壹個組合BCD數以十進制顯示在屏幕上。

; 下面的程序是16位匯編,以組合BCD碼58為例,編譯通過,運行正確。

; Program Name: BCD_Code.asm

BCD_Code SEGMENT

ASSUME CS:BCD_Code,DS:BCD_Code

ORG 100H

Start: mov cl,4

mov al,BCD_Str

xor ah,ah

shl ax,cl

shr al,cl

or ax,3030h

xchg ah,al

mov word ptr Dec_Str,ax

lea dx,Dec_Str ;字符串首地址

mov ah,9 ; 顯示結果

int 21h

Exit_Proc:mov ax,4c00h ;結束程序

int 21h

BCD_Str db 58h

Dec_Str db ' $'

BCD_Code ENDS

END Start

  • 上一篇:微星gt75vr什麽時候出
  • 下一篇:汽車遙控鑰匙哪裏配
  • copyright 2024編程學習大全網