CPU与汇编语言上机考试题.doc
文本预览下载声明
一、
请任意输入一个字符串,将该串倒序后在屏幕上显示。
.model small
.stack 10h
.data
string db 100 dup(50) #db:defined byte,定义100个字节,初始化为50
.code
start:
mov ax, @data
mov ds, ax #ds:数据段寄存器,对应全局变量
lea dx, string #lea:存储器地址偏移量存入dx
mov ah, 0ah #0ah:中断号,从键盘接收字符串并放入缓冲区(回车键结束)。缓冲区首地址存于dx。缓冲区第2字节开始实际存字符。
int 21h #转入中断子程序的入口
mov dl, 0ah #0ah:换行符的asc码
mov ah, 02h #02h:显示输出
int 21h
xor bh, bh
mov bl, string[1] #缓冲区的第0字节存入最多接收的字符数,第1字节存放实际输入的字数
lop:
mov dl, string[bx + 1]
mov ah, 02h
int 21h
dec bx
jnz lop
mov ah, 4ch #4ch:退出程序
int 21h
end start
请任意输入一个字符串,统计其中空格和A的个数,并将结果显示在屏幕上。
.model small
.stack 10h
.data
buf db 100 dup(50) #定义100字节 初始化50
count1 db 00h #初始化0 space个数
count2 db 00h #A个数
str1 db num of space is:$
str2 db num of A is:$
.code
start:
mov ax, @data
mov ds, ax
lea dx, buf
mov ah, 0ah
int 21h
mov dl, 0ah #换行
mov ah, 02h #显示输出
int 21h
xor bh, bh #0
mov bl, buf[1]
lop:
mov al, buf[bx + 1] #最后一个字符
xor al, #space?
jz space
mov al, buf[bx + 1]
xor al, A
jz char_A
next:
dec bx
jnz lop
jz show
space:
add count1, 01h
jmp next
char_A:
add count2, 01h
jmp next
show:
lea dx, str1
mov ah, 09h #显示字符串
int 21h
mov dl, count1
add dl, 30h
mov ah, 02h
int 21h
mov dl, 0ah #换行
mov ah, 02h #输出
int 21h
lea dx, str2
mov ah, 09h
int 21h
mov dl, count2
add dl, 30h
mov ah, 02h
int 21h
mov dl, 0ah
mov ah, 02h
int 21h
mov ah, 4ch
int 21h
end start
请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。
.model small
.stack 10h
.data
buf db 100 dup(50)
.code
start:
mov ax, @data
mov ds, ax
lea dx, buf
mov ah, 0ah
int 21h
mov dl, 0ah
mov ah, 02h
int 21h
xor bh, bh
mov bl, buf[1]
mov si, 0002h
lop:
mov al, buf[si]
xor al,
jz next
jnz show
next:
dec bx
jz break
inc si
jmp lop
show:
mov dl, buf[si]
mov ah, 02h
int 21h
jmp next
break:
mo
显示全部