不清楚的地方欢迎提问!小弟水平不高,请多指教。
我的环境:win8+emu8086
彩色hello_dome
;.486
;定义数据段
SHOW1 MACRO X,Y,LL,MSG,COLOR
MOV AX,1301H
MOV BH,0
MOV BL,COLOR
MOV CX,LL
MOV DH,X
MOV DL,Y
MOV BP,OFFSET MSG
INT 10H
ENDM
DATA SEGMENT USE16
MSG1 DB 'Hello'
L1 = $-MSG1
MSG2 DB 'I AM A STUDENT'
L2 =$-MSG2
MSG3 DB 'Goodbye!'
L3 = $-MSG3
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA,ES:DATA
BEG:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,0003H
INT 10H
;MOV AH,9
;MOV DX,OFFSET MSG1
;INT 21H
SHOW1 0,10,L1,MSG1,02H
SHOW1 12,38,L2,MSG2,04H
SHOW1 24,60,L3,MSG3,0EH
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
简单分支
;简单分支。
;通常是在执行了算数比较指令CMP,或者逻辑比较指令TEST之后,
;根据Z,S,O,P,C各种标志的状态进行有条件转移
;
;二进制数位显示程序
;将BX寄存器的内容以二进制格式显示在屏幕上
;.486
CODE SEGMENT USE16
ASSUME CS:CODE
BEG: MOV BX, 5678H
MOV CX, 16
LAST: MOV DL, '0'
RCL BX, 1 ;BX循环左移一位,带进位
JNC NEXT ;进位标志位0转,显示0
MOV DL, '1' ;否则显示1
NEXT: MOV AH, 2
INT 21H
LOOP LAST
MOV AH, 4CH
INT 21H
CODE ENDS
END BEG
复合分支
;复合分支
;例4.5 复合判断
;设NUMBER单元的数X以及数值N1、N2均为单字节无符号数,
;试判断X的大小,并根据判断结果分别显示:N1<=X<=N2,
;或X<N1,或X>N2.
;.486
DATA SEGMENT USE16
MESG1 DB 'N1 <= X <= N2 $'
MESG2 DB 'X