摘要: (1)编程,向内存0:200~0:23f依次传送数据0~63.assume cs:codecode segment mov ax,20H mov ds,ax mov bx,0 mov cx,64s: mov [bx],bl inc bx loop s mov ax,4c00H int 21Hcode endsend(3)程序功能是将"mov ax,4c00h"之前的指令复制到内存0:200处,补全程序:;只写关键代码;每次复制单字节数据,并通过al中转;程序入口为cs:0(ip=0),所以第一空处传递段地址为cs;接下来需要确定循环次数,即... 阅读全文
posted @ 2013-08-11 18:56 tsembrace 阅读(18516) 评论(1) 推荐(0) 编辑
摘要: 第五章 [BX]和loop指令*Loop指令格式:loop 标号等同步骤:(1)(cx)=(cx)-1;(2)若(cx)!=0,跳转到标号位置继续执行。*Debug的相关命令及说明g命令:g 偏移地址;使得执行到cs:偏移地址处停止;p命令:使Debug程序自动重复执行代码中的循环指令,直到(cx)=0为止。用Debug中直接写入指令,[idata]可以表示((段地址)*16+idata)处的值;而如果在汇编源代码中[idata]会被编译器masm处理为idata这个数值。所以在汇编源代码中当使用立即数来表示偏移地址时,须加前缀以显式表明,比如:ds:[idata]。*示例:计算ffff:0~ 阅读全文
posted @ 2013-08-11 18:36 tsembrace 阅读(784) 评论(0) 推荐(0) 编辑
摘要: 十七、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#includeint main(){ char mychar; int c_num,sp_num,num_num,oc_num,all_num; c_num=sp_num=num_num=oc_num=all_num=0; printf("请输入一串字符,以换行符结尾\n"); mychar=getchar(); while(mychar!='\n') { if(mychar>='0'&&mychar='A')&&( 阅读全文
posted @ 2013-08-11 14:04 tsembrace 阅读(558) 评论(0) 推荐(0) 编辑