汇编复习(从键盘上输入n个字符(n小于128)并按顺序存放在存储单元中,键入“Enter”键结束输入,然后按顺序在显示器上输出)
2019-01-06 16:43
204 查看
;从键盘上输入n个字符(n<128)并按顺序存放在存储单元中,键入“Enter”键结束输入;然后按顺序在显示器上输出(“Enter”键ASCII码为0DH) data segment msg db 13,10,"please input:$" msg2 db 128 dup("$") data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea dx,msg mov ah,09h int 21h lea di,msg2 input: mov ah,01h int 21h cmp al,0dh jz quit mov [di],al inc di cmp di,offset msg2+128 jz quit jmp input quit: lea dx,msg2 mov ah,09h int 21h mov ah,4ch int 21h code ends end start
思路
先输出msg提示用户输入,然后设置一个循环就是input那一段
循环跳出条件是要么按了回车
#####要么128个字符满了
如果两个条件都不满足,那么就将输入的字符保存进数据段的msg2里面,别忘了每次都要将di+1
如果满足退出跳出,则输出msg2 然后退出
下面练习一下debug工具
我们先-t运行到第一个int 21h位置,然后直接-p 这样就可以直接输入不然他还要进入一个子程序(emmm 应该是这样吧)
我这里输入了1和2 接下来我们看看数据段里面的数据
先-r (也可以不-r -t之后直接就有)等到inc di命令执行之后再查看 不然此时2应该还没保存进去
现在可以看到 di为14 so 输入 -d ds:0000
看到没1,2在0013和0014的位置
下面列一下常用的跳转指令
指令 | 解释 | 标志位 |
---|---|---|
JZ(JE) | 结果为0(或相等)则转移 | ZF=1 |
JNZ(JNE) | 结果不为0(或不相等) | ZF=0 |
JC | 结果有进位则转移 | CF=1 |
JNC | 结果无进位则转移 | CF=0 |
JS | 结果为负则转移 | SF=1 |
JNS | 结果为正则转移 | SF=0 |
JO | 结果溢出则转移 | OF=1 |
JNO | 结果不溢出则转移 | OF=0 |
JP | 结果为偶数个1则转移 | PF=1 |
JNP | 结果为奇数个则转移 | PF=0 |
相关文章推荐
- 汇编语言: 试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不 是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空 格符不存入),直到接收
- 汇编复习(;从键盘上输入1个字符,并统计二进制表示下1的个数,并显示输出。)
- 汇编语言: 从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用10号功能调用。),将其中的小写英文 字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。
- 80x86汇编编程:把一串字符从键盘输入,然后逆序输出
- c语言: 键盘输入一个n个字符的串,然后按字母表顺序输出这n个字符
- c语言:从键盘输入BOY三个字符,然后把它们输出到屏幕。
- 指针访问方式从键盘给数组 a[N]输入数据, 然后对元素值重新按逆序存放并输出
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用 10 号功能调用。)放在 STRING 中,试 编制一个程序测试字符串中是否存在数字。如有,则把 CL 的第 5 位置 1,否则将该位置置 0。
- 【c语言】从键盘输入BOY三个字符,然后把它们输出到屏幕
- 采用指针访问方式从键盘给数组a[N]输入数据,然后对元素值重新按逆序存放并输出
- 采用指针访问方式从键盘给数组a[N]输入数据,然后对元素值重新按逆序存放并输出 .
- 输入十个字符,存放到数组中,然后顺序打印出来。C语言新手
- c语言:从键盘输入BOY三个字符,然后把它们输出到屏幕。
- 从键盘输入一个串,将其中的小写字母全部换成大写字母,然后输出到一个磁盘文件“TEST”中保存输入的字符串以“!”结束。
- java-第三章-从键盘输入3个整数,然后将输入的整数按照从小到大的顺序放在abc,并输出3个变量的值
- 要求编写程序,读入5个字符串,按由小到大的顺序输出。 (2)功能要求 ①输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
- 3.2 设计一个程序,要求用户输入 5 个字符,然后将这 5 个字符按相反的顺序显示出 来。例如,假设输入 abcde,则输出为 edcba
- 十六周项目三:从键盘给数组输入数据,对其按逆顺序存放并输出
- Java-第三章-从键盘输入3个整数,然后将输入的整数按照从小到大的顺序放在abc,并输出3个变量的值