文档详情

CPU与汇编语言上机考试题.doc

发布:2018-05-19约4.96万字共66页下载文档
文本预览下载声明
一、 请任意输入一个字符串,将该串倒序后在屏幕上显示。 .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
显示全部
相似文档