汇编 简单使用

原创
2018/03/22 08:59
阅读数 64

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

 

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

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,然后输出余数,在继续这个过程

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

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

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部