汇编程序实例(求一个汇编语言程序实例(MASM for windows环境下))

本文目录
求一个汇编语言程序实例(MASM for windows环境下)
;统计BUF中正数的个数
;分析:每个元素是一个8位有符号二进制数,因此要判断其是否为正数,
;需选择带符号数条件转移指令进行判断转移(例如JG,JNG,JL,JNL)。
;由于共有n个元素,因此整个程序的结构就是对以上判断重复n次.
ASSUME CS:CODE, DS:DATA
DATA SEGMENT
BUF DB 1,2,3,4,5,6,7,-8,-9,0
N EQU $ - BUF
;计算BUF中元素的个数
COUNT DW ?
DATA ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
LEA BX,BUF
;取BUF的偏移地址,然后赋值给BX
MOV CX,N
;BUF中元素的个数,赋值给CX
MOV AX,0
;AX存放正数的个数
NEXT:CMP byte ptr [BX],0
JNG LESS0
;小于或等于0,跳转
INC AX
LESS0:
INC BX
;指向下一个元素
LOOP NEXT
MOV COUNT,AX
MOV AX,4C00H
INT 21H
CODE ENDS
END START
流程图:
汇编语言程序设计实例
第一题:mov cl,0
mov ch,17
next:dec ch
je exit
mov bx,0
shl ax,1
rol bx,1
cmp bx,0
jz next
inc cl
jmp next
exit:mov ah,4ch
int 21h
第二题:
mov cx,10
mov si,offset buffer
next:mov bx,word ptr[si]
inc bx
mov word ptr[si],bx
inc si
inc si
loop exit
jmp next
exit: mov ah,4ch
int 21h
8086汇编程序实例 第1个与第100个求和,第2与第99
; 本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:
; Str_Addr=字符串地址(要求在数据段)
; 用法: Output Str_Addr
; 用法举例:Output PromptStr
Output MACRO Str_Addr
lea dx,Str_Addr
mov ah,9
int 21h
EndM
; -------------------------------------
BLOCK1 db 100 dup(?) ;存放单字节之和
BLOCK2 dw 100 dup(?) ;存放双字节之和
Press_Key db 13,10,13,10,’The complated. Press any key to exit...$’
Start: push cs
pop ds
push es
push ds
pop es
lea si,Buffer
mov bx,si
add bx,99
lea di,BLOCK1
mov bp,sp
mov cx,50
cld
Addition: lodsb
add al,[bx]
jnc single
mov ah,1
push ax
jmp $+3
single: stosb
dec bx
loop Addition
lea si,BLOCK2
mov cx,bp
sub cx,sp
add si,cx
shr cx,1
storeword: dec si
dec si
pop [si]
loop storeword
pop es
; -------------------------------------
Exit_Proc: Output Press_Key ;提示操作完成,按任意键结束程序
mov ah,1
int 21h
mov ah,4ch ;结束程序
int 21h
org 6000h ;调整偏移量伪指令ORG
Buffer db 100 dup(?) ;100个单字节无符号数
Code ENDS
END Start ;编译到此结束

更多文章:
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00






