汇编 简单使用

MOV指令实现下面的功能:
1、寄存器和寄存器之间的传送
2、立即数到寄存器的传送
3、寄存器到内存单元之间的传送
4、立即数到内存单元的传送

 

标志位

溢出标志OF(Over flow flag) OV(1) NV(0)

方向标志DF(Direction flag) DN(1) UP(0)

中断标志IF(Interrupt flag) EI(1) DI(0)

符号标志SF(Sign flag) NG(1) PL(0)

零标志ZF(Zero flag) ZR(1) NZ(0)

辅助标志AF(Auxiliary carry flag) AC(1) NA(0)

奇偶标志PF(Parity flag) PE(1) PO(0)

进位标志CF(Carry flag) CY(1) NC(0)

 

 

DATAS SEGMENT
    ;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    
    mov ah,1H     
    mov al,2h
    mov ax,222h


    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

 

简单循环,输出字母表

CODE SEGMENT         ;代码段
START:
    MOV   AX, CODE
    MOV   DS, AX
;--------------------------------
    MOV   AH, 2
    MOV   DL, 'A'
    MOV   CX, 26
    
LOP:
    INT   21H
    add dl,1
    LOOP  LOP     ;循环26次
    
    MOV   AH, 4CH    ;结束程序
    INT   21H
CODE ENDS
    END   START

091014_KYHM_2856757.png

 

简单输入,输入一个字符,然后输出,使用cl存放临时结果,最后将数值放入dl输出

103738_uNcJ_2856757.png

DATAS SEGMENT
    ;此处输入数据段代码  
    s db 'please input a number',13,10,'$'
    s2 db 13,10,'your number',13,10,'$'
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    
    ;tip
    lea dx,s
    mov ah,09
    int 21h 
    
    ;get, 将数数字放入cl中 
    mov ah,01h
    int 21h
	mov cl,al

    
    ;tip2
    lea dx,s2
    mov ah,09
    int 21h 
    
    
    ;输出dl
    mov dl,cl
    mov ah,02h
    int 21h

    MOV AH,4CH
    INT 21H
CODES ENDS
    END START




 

 

将数字按照十进制输出,给定位数后用除法除以10,然后输出余数,在继续这个过程

其中由于汇编除法限制,不能输出太大的数。。。

202530_edPZ_2856757.png

202420_zBCA_2856757.png

DATAS SEGMENT
    ;此处输入数据段代码 
    n dw 1234 
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    
    
    mov ax,n		;将需要输出的数保存到ax中
    mov cx,5		;cx中保存输出数字的位数
    mov bl,10 		;bl中保存按照10进制输出
    s:
    	div bl   	;余数放在ah,商放在al中
    	mov dl,ah
    	add dl,30h
    	mov bh,al
    	
    	mov ah,2h
    	int 21h
    	mov al,bh
    	mov ah,0
    
    loop s
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

 

转载于:https://my.oschina.net/ahaoboy/blog/1648895

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值