程序1 将BX和DX中较大的一个无符号放到AX中
.MODEL TINY
.CODE
TITLE 将BX和DX中较大的一个无符号放到AX中
; CODE SEGMENT
; ASSUME CS:CODE
START: MOV BX,1000 ;十进制数
MOV DX,765H ;十六进制
CMP BX,DX ;相减
JA LAB3 ;Bx>dx, turn to lab3
MOV AX,DX ;
JMP LAB4
LAB3: MOV AX,BX
LAB4: MOV AH,4CH
INT 21H
; CODE ENDS
END START
程序2
DATA SEGMENT
VARX DB 06H
VARY DB 07H
RESULT DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DL,VARX ; 籇L<-X
ADD DL,VARY ;籇L<-X+Y
MOV CL,3
SAL DL,CL ;籇L<-(X+Y)*8
SUB DL,VARX ;DL<-(X+Y)*8-X
SAR DL,1 ;DL<-((X+Y)*8-X)/2
MOV RESULT,DL
MOV AL,DL
AND DL,0F0H
MOV CL,4
SHR DL,CL
ADD DL,30H ;dl的高四位加3
MOV AH,02H
INT 21H ;display dl 33
MOV DL,RESULT ;al 保存到dl
AND DL,0FH ;留取dl的低四位
ADD DL,30H ;dl的高四位加上3
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H ;退出程序
CODE ENDS
END START
程序3 在屏幕上显示‘n'
CODE SEGMENT
ASSUME CS:CODE
MAIN:
MOV DL,'n'
MOV AH,2H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END MAIN
一个类似的:
CODE SEGMENT
ASSUME CS:CODE
MAIN:
MOV AH,2
MOV DL,'A'
INT 21H
汇编table指令什么意思 INT 3H
MOV AH,4CH
INT 21H ;return to dos
CODE ENDS
END MAIN
程序4
DATA SEGMENT
NUM1 DB 45H
NUM2 DB 0AEH
DA1 DB ?
DA2 DB ?
DATA ENDS
STAK1 SEGMENT PARA STACK
DW 20H DUP (0)
STAK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STAK1
BEGINE:
MOV AX,DATA
MOV DS,AX
MOV AL,NUM1
MOV AH,NUM2
TEST AL,0H
JNE END0
TEST AH,01
JNE L1
INC AL
INC AH
JMP END0
L1: XCHG AH,AL
END0: MOV DA1,AL
MOV DA2,AH
MOV AH,4CH
INT 21H
CODE ENDS
END BEGINE
程序5
STACK_SEG SEGMENT STACK ;定义堆栈段
STACK_BUF DW 120 DUP(?) ;堆栈段缓冲区变量 预留120个字单位
TOP EQU $-STACK_BUF ;?这个是什么意思啊?
STACK_SEG ENDS ;堆栈段的终点
DATA_SEG SEGMENT PARA ;定义数据段
TABLE1 DB 9*9 DUP(0) ;定义一个字节变量,并填充其后的9*9个字节的空间为0
MUL1 DB 8 ;定义字节变量MUL1,并赋值为8
MUL2 DB 9 ;定义字节变量MUL1,并赋值为9
RESULT DB ? ;定义字节变量RESULT
DATA_SEG ENDS ;数据段的终点
CODE_SEG SEGMENT PARA ;定义代码段
MAIN PROC FAR
ASSUME CS:CODE_SEG,DS:DATA_SEG
ASSUME SS:STACK_SEG ;?
START: ;代码段开始
MOV AX,STACK_SEG
MOV SS,AX ;将堆栈的地址赋予给SS
MOV SP,TOP
MOV AX,DATA_SEG
MOV DS,AX
LEA DI,TABLE1
MOV BH,0
MOV CX,9
LOP1: PUSH CX
INC BH
MOV BL,0
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论