基本的8088汇编语言五个实验题
- 通过键盘输入一个小写字母,找出对应的前导字母和后续字母,再按顺序显示这三个字母。
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,0
MOV AX,DATA
MOV DS,AX
MOV AH,01H ;输入的结果存储在AL
INT 21H
MOV BL,AL ;因为后面要更改,使用BL寄存器来存储AL
ADD AL,01H
MOV DL,AL ;输出中断内容在DL内,把AL赋给DL
MOV AH,02H ;输出显示
INT 21H
SUB BL,01H ;算出相对于AL的前一个字符
MOV DL,BL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
///
2. 从键盘输入10个字符,然后以与键入相反的顺序将10个字符输出到显示屏幕上。(定义数据段保存录入字符)
代码如下:
DATA SEGMENT
;此处输入数据段代码
DATA ENDS
STACK SEGMENT
;此处输入堆栈段代码
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV BX,DATA
MOV DS,BX
MOV CX,10
LP1:MOV AH,01H
INT 21H ;输入字符
MOV AH,0
MOV [BX],AL
ADD BL,1
LOOP LP1
MOV CX,10
SUB BX,1
MOV DL,0AH
MOV AH,02H
INT 21H
LP2:MOV DX,[BX]
SUB BX,1
MOV AH,02H
INT 21H
LOOP LP2
MOV AH,4CH
INT 21H
CODE ENDS
END START
- 编写一个程序,要求比较数组ARRAY中的三个16位补码,并根据比较结果在终端上显示如下信息:
1) 如果三个数都不相等,显示0;
2) 如果三个数有两个相等,显示1;
3) 如果三个数都相当,显示2。
DATA SEGMENT
;此处输入数据段代码
ARRAY DW 3 DUP(?)
DATA ENDS
STACK SEGMENT
;此处输入堆栈段代码
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV ARRAY,DATA
MOV DS,ARRAY
MOV ARRAY[0],1
MOV ARRAY[2],2
MOV ARRAY[4],2
MOV AX,ARRAY[0]
MOV BX,ARRAY[2]
MOV CX,ARRAY[4]
CMP AX,BX ;先比较A和B
JA BC
JB BC
CMP AX,CX ;再比较A和C
JA U1
JB U1
JMP U2
BC: CMP BX,CX ;比较BC
JA AC
JB AC
JMP U1
AC: CMP AX,CX ;比较AC
JA U0
JB U0
JMP U1
U0:MOV DX,30H
JMP RES
U1:MOV DX,31H
JMP RES
U2:MOV DX,32H
JMP RES
RES: MOV AH,02H
INT 21H
MOV DX,0
MOV AH,4CH
INT 21H
CODE ENDS
END START
- 编写一个程序,要求通过键盘接收一个个位数N,然后显示N个字母‘$’。
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
MOV AH,01H
INT 21H
SUB AL,30H
MOV CL,AL
MOV CH,00H
LP1:MOV DL,'$'
MOV AH,02H
INT 21H
LOOP LP1
MOV AH,4CH
INT 21H
CODES ENDS
END START
- 将BX寄存器中的数用16位二进制数形式显示出来。
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV BX,DATAS
MOV DS,BX
;分别输入到BH和BL中
MOV AH,01H
INT 21H
MOV BH,AL
MOV AH,01H
INT 21H
MOV BL,AL
MOV CX,16
LP1:MOV DL,30H
SHL BX,1
JNC ZERO ; CF = 0,显示0
INC DL ;CF= 1,显示1
ZERO:MOV AH,02H
INT 21H
LOOP LP1
MOV DL,'B'
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START