tfsf.net
当前位置:首页>>关于经典8086汇编程序的资料>>

经典8086汇编程序

code segment assume cs:codestart: mov ax,2ab0h mov ds,ax mov ax,03abh mov es,ax mov si,1000h mov di,1008h mov cx,8192 cld rep movs mov ax,4c00h int 21hcode ends end start

DATASEGMENTORG 200HBUFDB 28, -96, 24, 0, 17, 84LL EQU ($ - BUF)DATAENDSCODESEGMENTASSUMECS:CODE, DS:DATASTART: MOV AX, DATA MOV DS, AX LEA SI, BUF MOV BL, [SI] MOV BH, [SI] MOV CX, LL ;个数C1:

这个程序的目的就是将一个2位十进制数原样输出到终端,以下为每一步的解释(注释算一行) line 1:在数据段定义了2个字单位的数,10,1,这两个数将分别作除数来取得2位十进制数的十位和个位数. line 3:将循环次数存放至cx寄存器 line

;用汇编语言求大正方形(边长5)和小正方形(边长4)之间环形的面积的程序DATA SEGMENT D_R DW 5;大正方形边长 D_S DW ?;大正方形面积 X_R DW 4;小正方形边长 X_S DW ?;小正方形面积 H_S DW ?;环形面积 DATA

第一个:data segment buf db 35,23,46,57,64,38,55,39,86/*写50个数*/ coun equ $-bufdata endscode segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea si,buf mov cx,coun mov al,0 again: cmp al,[si] jae next mov al,[si] mov

DATAS SEGMENT SJA DB 1,3,5,1,2 SJB DB 2,4,6,2,3 SJC DB 20,40,60,20,10 SJD DB 4,5,6,4,5 SJE DB 5,20,20,20,15 BUF1 DB 10 DUP(' ') BUF2 DB 10 DUP(' ')DATAS ENDSSTACKS SEGMENT DW 10 DUP(0)STACKS ENDSCODES

; 下面的程序是16位汇编,编译通过,运行正确.; Program Name: SameEven.asmSameEven SEGMENT ASSUME CS:SameEven,DS:SameEven ORG 100HStart: JMP BeginA DW 3,1000,158,623,789,123,456,127,65531,32762B DW 10000

BUF DB 4 DUP('?')LEA DX, BUF MOV AH,0AH INT 21H这个调用有问题改成BUF db 5,0,5 dup(?)

程序中有几十处错误或不规范的,均予以改正,已调试通过. 下面是修改后的程序:总体来说,程序编制的较繁琐,其实可通过整除10的方法进行大量优化. DSEG SEGMENT MESS0 DB 128 DB 0 DB 128 DUP(0) S6 DB 0 S7 DB 0 S8 DB

data segment buf db 3,5,-3,0,2,-8,1,-4,-9,-18 n equ $-buf count db ? data ends code segment assume cs:code,ds:data start: mov ax,seg data mov ds,ax lea si,buf mov byte ptr count,0 mov cx,n call proc_count mov byte ptr count,al mov ah,4ch int 21h

网站首页 | 网站地图
All rights reserved Powered by www.tfsf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com