lab1核心代码
比较两个字符串STRINGl和STRING2所含的字符是否相同。若相同,则显示'Match';否则,显示'No match'
1 DATA SEGMENT 2 STRING1 DB 'Move the cursor backward.' 3 STRING2 DB 'Move the cursor backward.' 4 5 MESS1 DB 'Match.',13,10,'$' 6 MESS2 DB 'NO Match!',13,10,'$' 7 DATA ENDS 8 9 PROG SEGMENT 10 ASSUME CS:PROG,DS:DATA,ES:DATA 11 START: 12 MOV AX,DATA 13 MOV DS,AX 14 MOV ES,AX 15 LEA SI,STRING1 16 LEA DI,STRING2 17 CLD 18 MOV CX,25 ;或者MOV CX, STRING2-STRING1 19 REPZ CMPSB 20 JZ MATCH 21 LEA DX,MESS2 22 JMP DISP 23 MATCH: 24 LEA DX,MESS1 25 DISP: 26 MOV AH, 09 27 INT 21H 28 MOV AH,4CH 29 INT 21H 30 PROG ENDS 31 END START
从键盘接收一个四位的16进制数,在终端上显示与它等值的二进制数
1 CODE SEGMENT 2 ASSUME CS:CODE 3 Begin: 4 MOV BX,0 ;用于存放四位的16进制数 5 MOV CH,4 6 MOV CL,4 7 INPUT: 8 SHL BX,CL ;将前面输入的数左移4位 9 MOV AH,1 ;从键盘取数 10 INT 21 11 CMP AL,30 ;<0吗? 12 JB INPUT ;不是"0~F"的数重新输入 13 CMP AL,39 ; 是"0~9"吗? 14 JA AF ;不是,转"A~F"的处理 15 AND AL,0F ;转换为:0000B~1001B 16 JMP BINARY 17 AF: 18 AND AL,DF ;首先转换为大写字母,或减20H 19 ;A~F判断 20 COM AL,41 21 JB INPUT 22 COM AL,39 23 JA AF 24 AND AL,0F 25 JMP BINARY 26 BINARY: 27 OR BL,AL ;将键盘输入的数进行组合 28 DEC CH 29 JNZ INPUT 30 NEXT: 31 MOV CX,16 ;将16位二进制数一位位地转换成ASCII码显示 32 DISP: 33 MOV DL,0 34 ROL BX,1 35 RCL DL,1 36 OR DL,30 37 MOV AH,2 ;进行显示 38 INT 21 39 LOOP DISP 40 STOP: 41 MOV AH, 4C 42 INT 21 43 CODE ENDS 44 END Begin
实现(W—(X×Y+Z—540))/X,将计算结果的商存人AX寄存器中,余数存人DX寄存器
1 -E 0000 01 00 02 00 1C 02 00 00 1C 02 64 00 2 -A 100 3 MOV AX,[0000] 4 MOV BX,[0002] 5 IMUL BX X*Y 6 MOV CX,AX 7 MOV BX,DX 8 MOV AX,[0004] 9 CWD 10 ADD CX,AX X*Y+Z 11 ADC BX,DX 12 SUB CX,[0008] X*Y+Z-540 13 SBB DX,[0006] 14 MOV AX,[0010] 15 CWD 16 SUB AX,CX W-(X*Y+Z-540) 17 SBB DX,BX 18 MOV BX,[0000] 19 IDIV BX AX,DX 20 -G=100 DE

浙公网安备 33010602011771号