汇编实验:用表格形式显示ASCII码

合集下载

ASCAL码对照表

ASCAL码对照表

目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。

适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。

因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类推,7位二进制数可以表示(27=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。

所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。

第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF (换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。

所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。

奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。

为了便于查询,以下列出ASCII码表:第128~255号为扩展字符(不常用)。

ASCII码一览表,ASCII码对照表

ASCII码一览表,ASCII码对照表

ASCII码一览表,ASCII码对照表ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是一套基于拉丁字母的字符编码,共收录了128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646。

ASCII 规范于1967 年第一次发布,最后一次更新是在1986 年,它包含了33 个控制字符(具有某些特殊功能但是无法显示的字符)和95 个可显示字符。

对控制字符的解释ASCII 编码中第0~31 个字符(开头的32 个字符)以及第127 个字符(最后一个字符)都是不可见的(无法显示),但是它们都具有一些特殊功能,所以称为控制字符( Control Character)或者功能码(Function Code)。

这33 个控制字符大都与通信、数据存储以及老式设备有关,有些在现代电脑中的含义已经改变了。

有些控制符需要一定的计算机功底才能理解,初学者可以跳过,选择容易的理解即可。

下面列出了部分控制字符的具体功能:•NUL (0)NULL,空字符。

空字符起初本意可以看作为NOP(中文意为空操作,就是啥都不做的意思),此位置可以忽略一个字符。

之所以有这个空字符,主要是用于计算机早期的记录信息的纸带,此处留个NUL 字符,意思是先占这个位置,以待后用,比如你哪天想起来了,在这个位置在放一个别的啥字符之类的。

后来呢,NUL 被用于C语言中,表示字符串的结束,当一个字符串中间出现NUL 时,就意味着这个是一个字符串的结尾了。

这样就方便按照自己需求去定义字符串,多长都行,当然只要你内存放得下,然后最后加一个\0,即空字符,意思是当前字符串到此结束。

•SOH (1)Start Of Heading,标题开始。

如果信息沟通交流主要以命令和消息的形式的话,SOH 就可以用于标记每个消息的开始。

1963年,最开始ASCII 标准中,把此字符定义为Start of Message,后来又改为现在的Start Of Heading。

ASCII码对照表

ASCII码对照表

十进制十六进制代码MCS 字符或缩写DEC 多国字符名代码ASCII 控制字符10 0 NUL 空字符1 1 SOH 标题起始 (Ctrl/A)2 2 STX 文本起始 (Ctrl/B)3 3 ETX 文本结束 (Ctrl/C)4 4 EOT 传输结束 (Ctrl/D)5 5 ENQ 询问 (Ctrl/E)6 6 ACK 认可 (Ctrl/F)7 7 BEL 铃 (Ctrl/G)8 8 BS 退格 (Ctrl/H)9 9 HT 水平制表栏 (Ctrl/I)10 0A LF 换行 (Ctrl/J)11 0B VT 垂直制表栏 (Ctrl/K)12 0C FF 换页 (Ctrl/L)13 0D CR 回车 (Ctrl/M)14 0E SO 移出 (Ctrl/N)15 0F SI 移入 (Ctrl/O)16 10 DLE 数据链接丢失 (Ctrl/P)17 11 DC1 设备控制 1 (Ctrl/Q)18 12 DC2 设备控制 2 (Ctrl/R)19 13 DC3 设备控制 3 (Ctrl/S)20 14 DC4 设备控制 4 (Ctrl/T)21 15 NAK 否定接受 (Ctrl/U)22 16 SYN 同步闲置符 (Ctrl/V)23 17 ETB 传输块结束 (Ctrl/W)24 18 CAN 取消 (Ctrl/X)25 19 EM 媒体结束 (Ctrl/Y)26 1A SUB 替换 (Ctrl/Z)27 1B ESC 换码符28 1C FS 文件分隔符29 1D GS 组分隔符30 1E RS 记录分隔符31 1F US 单位分隔符ASCII 特殊和数字字符32 20 SP 空格33 21 ! 感叹号34 22 " 引号 (双引号)35 23 # 数字符号36 24 $ 美元符37 25 % 百分号38 26 & 和号39 27 ' 省略号 (单引号)40 28 ( 左圆括号41 29 ) 右圆括号42 2A * 星号43 2B + 加号44 2C , 逗号45 2D -- 连字号或减号46 2E . 句点或小数点47 2F / 斜杠48 30 0 零49 31 1 150 32 2 251 33 3 352 34 4 453 35 5 554 36 6 655 37 7 756 38 8 857 39 9 958 3A : 冒号59 3B ; 分号60 3C < 小于61 3D = 等于62 3E > 大于63 3F ? 问号ASCII 字母字符64 40 @ 商业 at 符号65 41 A 大写字母 A66 42 B 大写字母 B67 43 C 大写字母 C68 44 D 大写字母 D69 45 E 大写字母 E70 46 F 大写字母 F71 47 G 大写字母 G72 48 H 大写字母 H73 49 I 大写字母 I74 4A J 大写字母 J75 4B K 大写字母 K76 4C L 大写字母 L77 4D M 大写字母 M78 4E N 大写字母 N79 4F O 大写字母 O80 50 P 大写字母 P81 51 Q 大写字母 Q82 52 R 大写字母 R83 53 S 大写字母 S84 54 T 大写字母 T85 55 U 大写字母 U86 56 V 大写字母 V87 57 W 大写字母 W88 58 X 大写字母 X89 59 Y 大写字母 Y90 5A Z 大写字母 Z91 5B [ 左中括号92 5C \ 反斜杠93 5D ] 右中括号94 5E ^ 音调符号95 5F _ 下划线96 60 ` 重音符97 61 a 小写字母 a98 62 b 小写字母 b99 63 c 小写字母 c 100 64 d 小写字母 d 101 65 e 小写字母 e 102 66 f 小写字母 f 103 67 g 小写字母 g 104 68 h 小写字母 h 105 69 i 小写字母 i 106 6A j 小写字母 j 107 6B k 小写字母 k108 6C l 小写字母 l109 6D m 小写字母 m110 6E n 小写字母 n111 6F o 小写字母 o112 70 p 小写字母 p113 71 q 小写字母 q114 72 r 小写字母 r115 73 s 小写字母 s116 74 t 小写字母 t117 75 u 小写字母 u118 76 v 小写字母 v119 77 w 小写字母 w120 78 x 小写字母 x121 79 y 小写字母 y122 7A z 小写字母 z123 7B { 左大括号124 7C | 垂直线125 7D } 右大括号 (ALTMODE) 126 7E ~ 代字号 (ALTMODE) 127 7F DEL 擦掉 (DELETE)控制字符128 80 [保留]129 81 [保留]130 82 [保留]131 83 [保留]132 84 IND 索引133 85 NEL 下一行134 86 SSA 被选区域起始135 87 ESA 被选区域结束136 88 HTS 水平制表符集137 89 HTJ 对齐的水平制表符集138 8A VTS 垂直制表符集139 8B PLD 部分行向下140 8C PLU 部分行向上141 8D RI 反向索引142 8E SS2 单移 2143 8F SS3 单移 3144 90 DCS 设备控制字符串145 91 PU1 专用 1146 92 PU2 专用 2147 93 STS 设置传输状态148 94 CCH 取消字符149 95 MW 消息等待150 96 SPA 保护区起始151 97 EPA 保护区结束152 98 [保留]153 99 [保留]154 9A [保留]155 9B CSI 控制序列引导符156 9C ST 字符串终止符157 9D OSC 操作系统命令158 9E PM 秘密消息159 9F APC 应用程序其他字符160 A0 [保留] 2161 A1 ? 反向感叹号162 A2 ¢分币符163 A3 £英磅符164 A4 [保留] 2165 A5 ¥人民币符166 A6 [保留] 2167 A7 §章节符168 A8 ¤通用货币符号2 169 A9 ? 版权符号170 AA a 阴性顺序指示符171 AB ? 左角引号172 AC [保留] 2173 AD [保留] 2174 AE [保留] 2175 AF [保留] 2176 B0 °温度符177 B1 ±加/减号178 B2 2 上标 2179 B3 3 上标 3180 B4 [保留] 2181 B5 μ微符182 B6 ? 段落符,pilcrow183 B7 ·中点184 B8 [保留] 2185 B9 1 上标 1186 BA o 阳性顺序指示符187 BB ? 右角引号188 BC ? 分数四分之一189 BD ? 分数二分之一190 BE [保留] 2191 BF ? 反向问号192 C0 à带重音符的大写字母 A193 C1 á带尖锐重音的大写字母 A194 C2 ? 带音调符号的大写字母 A195 C3 ? 带代字号的大写字母 A196 C4 ? 带元音变音 (分音符号) 的大写字母 A 197 C5 ? 带铃声的大写字母 A?198 C6 ? 大写字母 AE 双重元音199 C7 ? 带变音符号的大写字母 C200 C8 è带重音符的大写字母 E?201 C9 é带尖锐重音的大写字母 E?202 CA ê带音调符号的大写字母 E?203 CB ? 带元音变音 (分音符号) 的大写字母 E 204 CC ì带重音符的大写字母 I?205 CD í带尖锐重音的大写字母 I?206 CE ? 带音调符号的大写字母 I?207 CF ? 带元音变音 (分音符号) 的大写字母 I 208 D0 [保留] 2209 D1 ? 带代字号的大写字母 N?210 D2 ò带重音符的大写字母 O??211 D3 ó带尖锐重音的大写字母 O?212 D4 ? 带音调符号的大写字母 O??213 D5 ? 带代字号的大写字母 O??214 D6 ? 带元音变音 (分音符号) 的大写字母 O 215 D7 OE 大写字母 OE 连字2216 D8 ? 带斜杠的大写字母 O?217 D9 ù带重音符的大写字母 U?218 DA ú带尖锐重音的大写字母 U?219 DB ? 带音调符号的大写字母 U?220 DC ü带元音变音 (分音符号) 的大写字母 U 221 DD Y 带元音变音 (分音符号) 的大写字母 Y 222 DE [保留] 2223 DF ? 德语高调小写字母 s224 E0 à带重音符的小写字母 a?225 E1 á带尖锐重音的小写字母 a?226 E2 a 带音调符号的小写字母 a?227 E3 ? 带代字号的小写字母 a?228 E4 ? 带元音变音 (分音符号) 的小写字母 a 229 E5 ? 带铃声的小写字母 a?230 E6 ? 小写字母 ae 双重元音231 E7 ? 带变音符号的小写字母 c232 E8 è带重音符的小写字母 e?233 E9 é带尖锐重音的小写字母 e?234 EA ê带音调符号的小写字母 e?235 EB ? 带元音变音 (分音符号) 的小写字母 e 236 EC ì带重音符的小写字母 i?237 ED í带尖锐重音的小写字母 i?238 EE ? 带音调符号的小写字母 i?239 EF ? 带元音变音 (分音符号) 的小写字母 i 240 F0 [保留] 2241 F1 ? 带代字号的小写字母 n?242 F2 ò带重音符的小写字母 o?243 F3 ó带尖锐重音的小写字母 o?244 F4 ? 带音调符号的小写字母 o?245 F5 ? 带代字号的小写字母 o?246 F6 ? 带元音变音 (分音符号) 的小写字母 o 247 F7 oe 小写字母 oe 连字2248 F8 ? 带斜杠的小写字母 o?249 F9 ù带重音符的小写字母 u?250 FA ú带尖锐重音的小写字母 u?251 FB ? 带音调符号的小写字母 u?252 FC ü带元音变音 (分音符号) 的小写字母 u 253 FD ? 带元音变音 (分音符号) 的小写字母 y 2 254 FE [保留] 2255 FF [保留] 2。

ASCII码表完整版(带16进制)

ASCII码表完整版(带16进制)

ASCII码表完整版(带16进制)ASCII 码表完整版ASCII 值控制字符 ASCII 值控制字符 ASCII 值控制字符 ASCII值控制字符0NUT32(space)64@96、1SOH33!65A97a 2STX34”66B98b 3ETX35#67C99c 4EOT36$68D100d 5ENQ37%69E101e 6ACK38&70F102f 7BEL39,71G103g 8BS40(72H104h 9HT41)73I105i 10LF42*74J106j 11VT43+75K107k 12FF44,76L108l 13CR45-77M109m 14SO46.78N110n 15SI47/79O111o 16DLE48080P112p 17DCI49181Q113q 18DC250282R114r 19DC351383X115s 20DC452484T116t 21NAK53585U117u 22SYN54686V118v 23TB55787W24CAN56888X25EM57989Y26SUB58:90Z27ESC59;91[28FS60<92/29GS61=93]30RS62>94^31US63?95—NUL 空VT 垂直制表SOH 标题开始FF走纸控制ETB STX正文开始CR回车CAN ETX 正文结束SO移位输出EM EOY传输结束SI移位输入SUB ENQ询问字符DLE空格ESC ACK承认DC1设备控制1FS BEL报警DC2设备控制2GS BS退一格DC3设备控制3RS HT横向列表DC4设备控制4US LF换行NAK否定DEL119w 120x 121y 122z 123{ 124| 125} 126~ 127DEL SYN 空转同步信息组传送结束作废纸尽换置换码文字分隔符组分隔符记录分隔符单元分隔符删除0~ 32 及 127( 共 34 个) 是控制字符或通讯专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格) 、BEL(振铃)等;通讯专用字符:SOH (文头)、 EOT(文尾)、ACK(确认)等; ASCII 值为 8 、9、10 和 13 分别转换为退格、制表、换行和回车字符。

ASCII码表完整版(带16进制)

ASCII码表完整版(带16进制)

ASCII 码表完整版ASCII 值控制字符 ASCII 值控制字符 ASCII 值控制字符 ASCII值控制字符0NUT32(space)64@96、1SOH33!65A97a 2STX34”66B98b 3ETX35#67C99c 4EOT36$68D100d 5ENQ37%69E101e 6ACK38&70F102f 7BEL39,71G103g 8BS40(72H104h 9HT41)73I105i 10LF42*74J106j 11VT43+75K107k 12FF44,76L108l 13CR45-77M109m 14SO46.78N110n 15SI47/79O111o 16DLE48080P112p 17DCI49181Q113q 18DC250282R114r 19DC351383X115s 20DC452484T116t 21NAK53585U117u 22SYN54686V118v23TB55787W24CAN56888X25EM57989Y26SUB58:90Z27ESC59;91[28FS60<92/29GS61=93]30RS62>94^31US63?95—NUL 空VT 垂直制表SOH 标题开始FF走纸控制ETB STX正文开始CR回车CAN ETX正文结束SO移位输出EM EOY传输结束SI移位输入SUB ENQ询问字符DLE空格ESC ACK承认DC1设备控制 1FS BEL报警DC2设备控制 2GS BS退一格DC3设备控制 3RS HT横向列表DC4设备控制 4US LF换行NAK否定DEL119w 120x 121y 122z 123{ 124| 125} 126~ 127DEL SYN 空转同步信息组传送结束作废纸尽换置换码文字分隔符组分隔符记录分隔符单元分隔符删除0~ 32 及 127( 共 34 个) 是控制字符或通讯专用字符(其余为可显示字符),如控制符:LF(换行)、 CR(回车)、 FF(换页)、 DEL(删除)、 BS(退格 ) 、BEL(振铃)等;通讯专用字符:SOH(文头)、 EOT(文尾)、ACK(确认)等; ASCII 值为 8 、9、10 和 13 分别转换为退格、制表、换行和回车字符。

ASCII码表完整版

ASCII码表完整版

ASCII 码表完满版ASCII 值控制字符 ASCII 值控制字符 ASCII 值控制字符 ASCII 值控制字符0NUT32(space)64@96、1SOH33!65A97a2STX34”66B98b3ETX35#67C99c4EOT36$68D100d5ENQ37%69E101e6ACK38&70F102f7BEL39,71G103g8BS40(72H104h9HT41)73I105i10LF42*74J106j11VT43+75K107k12FF44,76L108l13CR45-77M109m 14SO46.78N110n15SI47/79O111o16DLE48080P112p17DCI49181Q113q18DC250282R114r19DC351383X115s20DC452484T116t21NAK53585U117u22SYN54686V118v23 TB 55 7 87 W 119 w 24 CAN 56 8 88 X 120 x 25 EM 57 9 89 Y 121 y 26 SUB 58 : 90 Z 122 z 27 ESC 59 ; 91 [ 123 { 28 FS 60 < 92 / 124 | 29 GS 61 = 93 ] 125 } 30 RS 62 >94 ^ 126 ~ 31US6395—127 DELNUL 空VT 垂直制表SYN 空转同步SOH 标题开始 FF??走纸控制ETB 信息组传达结束 STX 正文开始 CR?? 回车CAN 作废 ETX 正文结束 SO??移位输出EM?? 纸尽 EOY 传输结束 SI??? 移位输入 SUB 换置 ENQ 咨询字符 DLE 空格ESC 换码ACK 认可 DC1设备控制1FS?? 文字分开符 BEL 报警 DC2 设备控制 2 GS?? 组分开符 BS?? 退一格 DC3 设备控制 3 RS?? 记录分开符 HT?? 横向列表DC4 设备控制 4 US?? 单元分开符 LF?? 换行NAK 否定DEL 删除0~ 32 及 127( 共 34 个 ) 是控制字符或通讯专用字符(其他为可显示字符),如控制符: LF (换行)、 CR (回车)、 FF (换页)、 DEL (删除)、 BS (退格 ) 、BEL (振铃)等;通讯专用字符: SOH (文头)、 EOT (文尾)、ACK (确认)等; ASCII 值为 8 、9、10 和 13 分别变换为退格、制表、换行和回车字符。

ASCII码对照表

ASCII码对照表

ASCII码对照表ASCII 表上的数字 0–31 分配给了控制字符,用于控制像打印机等一些外围设备。

例如,12 代表换页/新页功能。

此命令指示打印机跳到下一页的开头。

ASCII 非打印控制字符表十进制十六进制字符十进制十六进制字符0 00 空 16 10 数据链路转意1 01 头标开始 17 11 设备控制 12 02 正文开始 18 12 设备控制 23 03 正文结束 19 13 设备控制 34 04 传输结束 20 14 设备控制 45 05 查询 21 15 反确认6 06 确认 22 16 同步空闲7 07 震铃 23 17 传输块结束8 08 backspace 24 18 取消9 09 水平制表符 25 19 媒体结束10 0A 换行/新行 26 1A 替换11 0B 竖直制表符 27 1B 转意12 0C 换页/新页 28 1C 文件分隔符13 0D 回车 29 1D 组分隔符14 0E 移出 30 1E 记录分隔符15 0F 移入 31 1F 单元分隔符ASCII 打印字符数字32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。

数字 127 代表 DELETE 命令。

ASCII 打印字符表十进制十六进制字符十进制十六进制字符32 20 space 80 50 P33 21 ! 81 51 Q34 22 " 82 52 R35 23 # 83 53 S36 24 $ 84 54 T37 25 % 85 55 U38 26 & 86 56 V39 27 ' 87 57 w40 28 ( 88 58 X41 29 ) 89 59 Y42 2A * 90 5A Z43 2B + 91 5B [44 2C , 92 5C \45 2D - 93 5D ]46 2E . 94 5E ^47 2F / 95 5F _48 30 0 96 60 `49 31 1 97 61 a50 32 2 98 62 b51 33 3 99 63 c52 34 4 100 64 d53 35 5 101 65 e54 36 6 102 66 f55 37 7 103 67 g56 38 8 104 68 h57 39 9 105 69 i58 3A : 106 6A j59 3B ; 107 6B k60 3C < 108 6C l61 3D = 109 6D m62 3E > 110 6E n63 3F ? 111 6F o64 40 @ 112 70 p65 41 A 113 71 q66 42 B 114 72 r67 43 C 115 73 s68 44 D 116 74 t69 45 E 117 75 u70 46 F 118 76 v71 47 G 119 77 w72 48 H 120 78 x73 49 I 121 79 y74 4A J 122 7A z75 4B K 123 7B {76 4C L 124 7C |77 4D M 125 7D }78 4E N 126 7E ~79 4F O 127 7F DEL扩展 ASCII 打印字符扩展的 ASCII 字符满足了对更多字符的需求。

ascii

ascii

ASCII码显示程序,用16×16表格形式显示ASCII字符00H~FFH。

特殊字符用¥表示
assume cs:codesg
codesg segment ;设置寄存器初值
start: mov dx, 0000H
mov dl, 00H ;从ASCII码为00H的字符开始显示
mov cx, 0010H ;设置外循环的次数16,即要显示的行数
mov ax, 0000H
r:
mov ah, 02H ;设置显示方式
push cx ;保存外循环次数的计数
mov cx, 0010H ;设置内循环次数16,即一行16个字符
temp:
push dx
cmp dl,20H
jb s
cmp dl,7eH
ja s
temp1: int 21H ;显示ASCII值为[dl]的字符
mov dl, 00H ;输出空格
int 21H
pop dx ;恢复dx的值,并加1,产生下一个ASCII字符
inc dx
loop temp
;已经进行完了一次内循环
pop cx ;恢复外循环次数的计数
push dx ;保存dx的值
mov dl, 0dH ;输出回车换行
int 21H
mov dl, 0aH
int 21H
pop dx ;恢复dx的值
loop r
;外循环结束,程序的功能完成
mov ax, 4c00H
int 21H
s:mov dl,24h
jmp temp1
codesg ends
end start。

ASCII码表完整版(带16进制)

ASCII码表完整版(带16进制)
113
q
18
DC2
50
2
82
R
114
r
19
DC3
51
3
83
X
115
s
20
DC4
52
4
84
T
116
t
21
NAK
53
5
85
U
117
ll
22
SYN
54
6
86
V
118
V
23
TB
55
7
87
W
119
W
24
CAN
56
8
88
X
120
X
25
EM
57
9
89
Y
121
y
26
SUB
58
90
Z
122
Z
27
ESC
59
I
5
91
[
123
被选区域结束
88
HTS
水平制表符集
89
HTJ
对齐的水平制表符集
8A
VTS
垂直制表符集
8B
PLD
部分行向下
8C
PLU
部分行向上
8D
RI
反向索引
8E
SS2
单移2
8F
SS3
单移3
90
DCS
设备控制字符串
91
PU1
专用1
92
PU2
专用2
93
STS
设置传输状态
94
CCH
取消字符
95
MW
消息等待

汇编程序设计之打印ASCII表和九九乘法表

汇编程序设计之打印ASCII表和九九乘法表

学号:0121010340328题目打印ASCII码表及九九乘法表学院计算机科学与技术学院专业计算机科学与技术专业班级1003班姓名刘颖指导教师程艳芬2012 年 6 月29 日课程设计任务书学生姓名:刘颖专业班级:计科1003班指导教师:程艳芬工作单位:计算机科学与技术学院题目: 打印ASCII码表及九九乘法表初始条件:理论:完成了《汇编语言程序设计》课程,对微机系统结构和80系列指令系统有了较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。

实践:完成了《汇编语言程序设计》的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)进一步理解和掌握较复杂程序的设计方法,掌握子程序结构的设计和友好用户界面的设计。

具体的设计任务及要求:1)将字母和数字的ASCII表在屏幕上打印出来;2)将九九乘法表屏幕上打印出来;3)程序采用子程序结构,结构清晰;4)友好清晰的用户界面,能识别输入错误并控制错误的修改。

在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求请见课程设计指导书。

阅读资料:1)《IBM—PC汇编语言程序设计实验教程》实验2.42)《IBM—PC汇编语言程序设计(第2版)》例6.11时间安排:设计安排一周:周1、周2:完成系统分析及设计。

周3、周4:完成程序调试,和验收。

周5:撰写课程设计报告。

指导教师签名:年月日系主任(或责任教师)签名:年月日目录1问题分析和任务定义 (3)11问题描述 (3)12问题分析 (3)2开发平台 (3)3系统设计和各程序段描述 (3)31主程序流程图 (3)32 ASCII子程序流程图 (4)33 NINE子程序流程图 (5)34 TOH子程序流程图 (5)35 OUTPUT子程序流程图 (6)4调试结果与运行情况分析 (6)41调试中的错误及改正 (6)42程序运行结果 (7)43运行情况分析 (7)5自我评价与总结 (7)6参考文献 (8)7源程序 (8)8评分表 (12)打印ASCII码表及九九乘法表1问题分析和任务定义1.1问题描述将字母和数字的ASCII表和九九乘法表在屏幕上打印出来;1.2问题分析(1)在主程序中设计主菜单,选项包括打印字母和数字的ASCII码表、打印九九乘法表和退出,选择操作序号调用相关子程序;(2)打印ASCII码子程序中,数字有0—9,字母有A—B和a—b,ASCII码分别为30H—39H,41H—5AH,61H—7AH,分别输出三组字符及ASCII码;(3)打印九九乘法表子程序中,分行输出1到9的数字与1到9相乘的式子和结果;(4)主菜单中选择操作时可判断输入是否在选项中,不在则重新输入;2开发平台系统:Windows 7开发工具:Masm for Windows 集成实验环境 2010语言:汇编语言3系统设计和各程序段描述主程序完成操作的选择子程序的调用,ASCII子程序完成字母数字ASCII码的输出,NINE子程序得到九九乘法表,UOTPUT子程序输出乘法算式,SPACE子程序输出空格,CRLF子程序回车换行。

汇编语言编程实现ASCII码表的输出显示

汇编语言编程实现ASCII码表的输出显示

题目:用汇编语言编程实现ASCII码表的输出显示要求:(1)对于无法显示的控制字符(02H,07H,08H,09H,0AH,0DH)用空格代替,(2)输出显示为16x16的矩阵,列优先,即同一行相邻字符的ASCII 值相差10H,同一列相邻字符的ASCII值相差01H(3)同一行相邻字符用空格隔开源程序如下:方法一:DA TA SEGMENTDA TA ENDSSTACK SEGMENT STACKDB 10 DUP(?)STACK ENDSCODE SEGMENTASSUME DS:DA TA,SS:STACK,CS:CODESTART: MOV AX,DATAMOV DS,AX ;初始化DSMOV DH,0 ;要显示的ASCII码表的初始值MOV CX,10H ;列计数器LL: MOV BL,10H ;行计数器PUSH DX ;把这一行第一个值压入堆栈,保护现场CMP DH,2JZ TCMP DH,7JZ TCMP DH,8JZ TCMP DH,9JZ TCMP DH,0AHJZ TCMP DH,0DHJZ TG: MOV DL,DH ;显示ASCII码表中值为DH的字符MOV AH,2INT 21HADD DH,10H ;DH + 10 ->DH,为下一个要显示的值DEC BL ;计数JZ BB ;一行显示16个字符,显示完,跳转AA: MOV DL,' ' ;每显示一个字符(行末字符除外),后跟着显示一个空格MOV AH,2INT 21HJMP G ;显示完空格,显示下一个字符T: MOV DL,' ' ;要显示的值为2或7,8,9,0AH,0DH时,用空格代替MOV AH,2INT 21HADD DH,10H ;DH + 10 ->DH,为下一个要显示的值DEC BLJMP AA ;跳转到AA,显示空格BB: CALL PPPP ;一行显示完16个字符时,调用子程序,实现回车、换行POP DX ;将堆栈中的值(上一行首值)弹出至DH,恢复现场INC DH ;DH + 1->DH,这行要显示的首值LOOP LL ;从LL开始循环,实现剩余各行的显示M: MOV AH,4CH ;程序结束,返回操作系统INT 21HPPPP PROC ;子程序MOV DL,0DH ;回车MOV AH,2INT 21HMOV DL,0AH ;换行MOV AH,2INT 21HRET ;返回主程序PPPP ENDPCODE ENDSEND START方法二:DA TA SEGMENTQQ DB 2,7,8,9,0AH,0DHDA TA ENDSSTACK SEGMENT STACKDB 10 DUP(?)STACK ENDSCODE SEGMENTASSUME DS:DA TA,SS:STACK,CS:CODESTART: MOV AX,DATAMOV DS,AX ;初始化DSMOV DH,0 ;要显示的ASCII码表的初始值MOV CX,10H ;列计数器LL: MOV BL,0FH ;行计数器PUSH DX ;把这一行第一个值压入堆栈,保护现场CALL MMMMAA: MOV DL,' ' ;输出空格MOV AH,2INT 21HADD DH,10H ;DH + 10 ->DH,为下一个要显示的值G: MOV DL,DH ;显示ASCII码表中值为DH的字符MOV AH,2INT 21HDEC BLJNZ AA ;跳转到AA,显示空格BB: CALL PPPP ;一行显示完16个字符时,调用子程序,实现回车、换行POP DX ;将堆栈中的值(上一行首值)弹出至DH,恢复现场INC DH ;DH + 1->DH,这行要显示的首值LOOP LL ;从LL开始循环,实现剩余各行的显示MOV AH,4CH ;程序结束,返回操作系统INT 21HMMMM PROC ;子程序1PUSH CXMOV CX,6MOV SI,OFFSET QQNN: CMP DH,[SI] ;判断是否等于2,7,8,9,0AH,0DHJZ TRINC SILOOP NNMOV DL,DH ;显示ASCII码表中值为DH的字符MOV AH,2INT 21HJMP THTR: MOV DL,' ' ;要显示的值为2或7,8,9,0AH,0DH时,用空格代替MOV AH,2INT 21HTH : POP CXRETMMMM ENDPPPPP PROC ;子程序2MOV DL,0DH ;回车MOV AH,2INT 21HMOV DL,0AH ;换行MOV AH,2INT 21HRET ;返回主程序PPPP ENDPCODE ENDSEND START。

汇编语言编程实现ASCII码表的输出显示

汇编语言编程实现ASCII码表的输出显示

题目:用汇编语言编程实现ASCII码表的输出显示要求:(1)对于无法显示的控制字符(02H,07H,08H,09H,0AH,0DH)用空格代替,(2)输出显示为16x16的矩阵,列优先,即同一行相邻字符的ASCII 值相差10H,同一列相邻字符的ASCII值相差01H(3)同一行相邻字符用空格隔开源程序如下:方法一:DATA SEGMENTDATA ENDSSTACK SEGMENT STACKDB 10 DUP()STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART: MOV AX,DATAMOV DS,AX ;初始化DSMOV DH,0 ;要显示的ASCII码表的初始值MOV CX,10H ;列计数器LL: MOV BL,10H ;行计数器PUSH DX ;把这一行第一个值压入堆栈,保护现场CMP DH,2JZ TCMP DH,7JZ TCMP DH,8JZ TCMP DH,9JZ TCMP DH,0AHJZ TCMP DH,0DHJZ TG: MOV DL,DH ;显示ASCII码表中值为DH的字符MOV AH,2INT 21HADD DH,10H ;DH + 10 ->DH,为下一个要显示的值DEC BL ;计数JZ BB ;一行显示16个字符,显示完,跳转AA: MOV DL,' ' ;每显示一个字符(行末字符除外),后跟着显示一个空格MOV AH,2INT 21HJMP G ;显示完空格,显示下一个字符T: MOV DL,' ' ;要显示的值为2或7,8,9,0AH,0DH时,用空格代替MOV AH,2INT 21HADD DH,10H ;DH + 10 ->DH,为下一个要显示的值DEC BLJMP AA ;跳转到AA,显示空格BB: CALL PPPP ;一行显示完16个字符时,调用子程序,实现回车、换行POP DX ;将堆栈中的值(上一行首值)弹出至DH,恢复现场INC DH ;DH + 1->DH,这行要显示的首值LOOP LL ;从LL开始循环,实现剩余各行的显示 M: MOV AH,4CH ;程序结束,返回操作系统INT 21HPPPP PROC ;子程序MOV DL,0DH ;回车MOV AH,2INT 21HMOV DL,0AH ;换行MOV AH,2INT 21HRET ;返回主程序PPPP ENDPCODE ENDSEND START方法二:DATA SEGMENTQQ DB 2,7,8,9,0AH,0DHDATA ENDSSTACK SEGMENT STACKDB 10 DUP()STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART: MOV AX,DATAMOV DS,AX ;初始化DSMOV DH,0 ;要显示的ASCII码表的初始值MOV CX,10H ;列计数器LL: MOV BL,0FH ;行计数器PUSH DX ;把这一行第一个值压入堆栈,保护现场CALL MMMMAA: MOV DL,' ' ;输出空格MOV AH,2INT 21HADD DH,10H ;DH + 10 ->DH,为下一个要显示的值G: MOV DL,DH ;显示ASCII码表中值为DH的字符MOV AH,2INT 21HDEC BLJNZ AA ;跳转到AA,显示空格BB: CALL PPPP ;一行显示完16个字符时,调用子程序,实现回车、换行POP DX ;将堆栈中的值(上一行首值)弹出至DH,恢复现场INC DH ;DH + 1->DH,这行要显示的首值LOOP LL ;从LL开始循环,实现剩余各行的显示MOV AH,4CH ;程序结束,返回操作系统INT 21HMMMM PROC ;子程序1PUSH CXMOV CX,6MOV SI,OFFSET QQNN: CMP DH,[SI] ;判断是否等于2,7,8,9,0AH,0DHJZ TRINC SILOOP NNMOV DL,DH ;显示ASCII码表中值为DH的字符MOV AH,2INT 21HJMP THTR: MOV DL,' ' ;要显示的值为2或7,8,9,0AH,0DH时,用空格代替MOV AH,2INT 21HTH : POP CXRETMMMM ENDPPPPP PROC ;子程序2MOV DL,0DH ;回车MOV AH,2INT 21HMOV DL,0AH ;换行MOV AH,2INT 21HRET ;返回主程序PPPP ENDPCODE ENDSEND START。

汇编ASCII码表及扩展ASCII码表

汇编ASCII码表及扩展ASCII码表

ASCII码表及扩展ASCII码表
ASCII码表可以看成由三部分组成:
第一部分由00H到1FH共32个,一般用来通讯或作为控制之用,有些可以显示在屏幕上,有些则不能显示,但能看到其效果(如换行、退格).如下表:
第二部分是由20H到7FH共96个,这95个字符是用来表示阿拉伯数字、英文字母大小写和下划线、括号等符号,都可以显示在屏幕上.如下表:
第三部分由80H到0FFH共128个字符,一般称为"扩充字符",这128个扩充字符是由IBM制定的,并非标准的ASCII码.这些字符是用来表示框线、音标和其它欧洲非英语系的字母.。

用表格形式显示ASCII字符

用表格形式显示ASCII字符

实验题目用表格形式显示ASCII字符班级姓名学号日期2009-11-3一、实验目的及要求熟悉Debug命令,掌握应用Debug完成汇编程序的调试,检测程序的运行过程。

二、实验内容按15行×16列的表格形式显示ASCll码为10H~FFH的所有字符,即以行为主的顺序及ASCll码递增的次序依次显示对应的字符。

每16个字符为一行,每行中相邻两个字符之间用空白符(ASCII为20)隔开。

三、算法思想及程序框图入口没参数,出口是数据的输出,表格的生成1.代码Stack Segment para stack 'stack'DB 512 DUP(?)Stack endsCode SegmentAssume CS:CODE,DS:code,SS:StackStart:mov dl,10H ;DL初始化为10H,存放ASCII码初始值mov ch,000FH ;行循环次数15;以下为行循环next1: mov Cl,0010H ;列循环次数16;以下为列循环next: Call display ;显示DX 内的字符INC dl ;DL自增call blank ;空格Dec Cl ;列自减Cmp Cl,0 ;判断列结束?jne next ;未结束,继续call Enter ;列结束回车换行Dec Ch ;行自减Cmp Ch,0 ;判断行结束?Jne next1 ;未结束,下一行mov Ah,4cH ;结束程序int 21hdisplay proc ;显示字符过程mov AH,02HINT 21hretdisplay endpblank proc ;显示空格过程push DXmov Dl,20Hcall displaypop Dxretblank endpEnter proc ;回车换行过程push dxmov dl,0dHcall displaymov dl,0ahcall displaypop dxretEnter endpCode endsend Start2.流程图四、调试分析1.调试方法、步骤:开始-运行-cmd输入cd C:\MASM611\BINmasm a 编译link a 连接2.调试中遇到的问题:开始没有成功编译源文件3.对问题的解决方法:将源文件放在编译文件夹内五、实验及测试结果1.测试方法、测试步骤和测试数据2.是否达到预计的实验目的及要求:已经达到预计的实验目的3.程序中间结果及程序运行最后结果:4.实验最后结论用表格形式显示ASCII字符用汇编语言编写程序成功六、实验心得及建议成功的熟悉了Debug命令,掌握应用Debug完成汇编程序的调试,并且检测程序的运行过程。

汇编实验:用表格形式显示ASCII码

汇编实验:用表格形式显示ASCII码

实验题目_用表格形式显示ASCII字符SMASCII _ 一、实验目的学习用汇编语言设计与编写循环程序二、实验要求按15行X16列的表格形式显示ASCII码为10H一100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。

每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII为0)隔开。

三、实验提示(1)显示每个字符可使用功能号为02 的显示输出功能调用,使用方法如下:mov ah,02h mov dl,输出字符的ASCII 码int 21h(2)显示空白符时,用其ASCII 码0 置入dl 寄存器。

每行结束时,用显示回车(ASCII 为0dh)和换行符(ASCII为0ah)来结束本行并开始下一行。

(3)由于逐个显示相继的ASCII 字符时,需要保存并不断修改dl 寄存器的内容,而显示空白、回车、换行符时也需要使用dl寄存器,为此可使用堆栈来保存相继的ASCII字符。

具体用法是:在显示空包或回车、换行符前用指令Push dx把dl 的内容保存到堆栈中去。

在显示空白或回车、换行符后用指令Pop dx恢复dl 寄存器的原始内容。

四、实验程序prognam segmentmain proc farassume cs:prognamstart:mov ah, 02hmov dl, 10h ;设置初始输出为ASCII的10hmov bl, 15 ;输出显示为15行e:mov cx, 16;设置循环次数,16,表示输出显示为16列l:int 21h ;显示输出push dx ;推入堆栈mov ah, 02hmov dl, 0int 21hmov ah, 02hmov dl, 0int 21h ;显示空白符pop dx ;将栈顶元素推出inc dl ;设置下一个元素loop l ;循环输出每行的16个ASCII元素push dx ;将下一行的首元素推入堆栈mov ah, 02hmov dl, 0dhint 21hmov ah, 02hmov dl, 0ahint 21h ;输出换行pop dx ;将栈顶元素推出dec blcmp bl, 0 ;比较确定是否已经输出15行元素jne e ;若还未完成输出,则跳转至e,继续进行下一行元素的输出je exit ;否则退出程序exit:mov ax, 4c00hint 21hmain endpprognam endsend start五、调试结果。

贵州大学微机原理(汇编语言)实验报告_自编程序实验1_用表格形式显示字符

贵州大学微机原理(汇编语言)实验报告_自编程序实验1_用表格形式显示字符

实验课程名称微型计算机原理实验报告实验项目名称自编程序实验1 专业班级电子信息科学与技术08级1班学生姓名学号实验成绩指导教师签字理学院实验时间:2010年12月6日自编程序实验1 用表格形式显示字符1、题目:用表格形式显示ASCII字符2、实验要求:按15行*16列的表格形式显示ASCII码为10H—100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。

每16个字符为一行,每行中的相邻两个字符之间用空白字符(ASCII码为0)隔开。

3、提示:(1)显示每个字符可使用功能号为2的显示输出功能调用MOV AH,2MOV DL,10H;字符从10H开始,每显示一个DL+1产生下一个字符INT 21H(2)显示空白符时DL=00H;(3)每行显示结束时需要显示回车(ASCII码为0DH)和换行(ASCII码为0AH),本行显示结束后可另起一行显示。

基本实验程序如下:;ASCII.ASMDA TA SEGMENTINFO DB '**This is a display ASCII codesheet.(10H-100H)**',0DH,0AH,'$'DA TA ENDSCODE SEGMENTASSUME DS:DA TA,CS:CODESTART: MOV AX,DATAMOV DS,AXLEA DX,INFOMOV AH,9INT 21HMOV DX,10HLINE: MOV CL,16CYCLE: MOV AH,2INT 21HINC DXCMP DX,100HJZ DONEPUSH DXMOV AH,2MOV DL,0INT 21HPOP DXDEC CLCMP CL,0JZ NEXTJMP CYCLE| 微型计算机原理实验报告 1NEXT: PUSH DXMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HPOP DXJMP LINEDONE: MOV AH,4CHINT 21HCODE ENDSEND START结果如图所示:加上表格线后的实验程序如下:;ASCII.ASMDA TA SEGMENTINFO DB 0DH,0AH,' **This is a display ASCII codesheet.(10H-100H)**',0DH,0AH,0DH,0AH,'$'DA T1 DB201,205,205,205,209,205,205,205,209,205,205,205,209,205,205,205,209,205,20 5,205,209,205,205,205,209,205,205,205,209,205,205,205,209,'$'DA T2 DB205,205,205,209,205,205,205,209,205,205,205,209,205,205,205,209,205,205,20 5,209,205,205,205,209,205,205,205,209,205,205,205,187,0DH,0AH,'$'DA T3 DB0DH,0AH,200,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205, 2微型计算机原理实验报告|207,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,207,'$'DA T4 DB205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,207,205,205,205,188,'$'DA TA ENDSCODE SEGMENTASSUME DS:DA TA,CS:CODESTART: MOV AX,DATAMOV DS,AXLEA DX,INFO ;显示提示信息MOV AH,9INT 21HLEA DX,DAT1 ;显示表格的顶线INT 21HLEA DX,DAT2 ;显示表格的顶线INT 21HMOV DX,10HLINE: PUSH DX ;对DL中的数据保护MOV DL,186 ;显示表格最左边边线MOV AH,2INT 21HMOV DL,0INT 21HPOP DX ;返回DL中的数据MOV CL,16MOV CH,16CYCLE: INT 21H ;显示DL里存的ASCII码字符INC DX ;DX自加,指向下一个字符CMP DX,100H ;与100H比较,看是否是显示完毕JZ DONE ;是,结束程序DEC CHCMP CH,0JZ NEXT0CALL DISP ;调用子程序,显示间隔线NEXT0: DEC CL ;CL自减,用于16个字符显示完毕后换行CMP CL,0JZ NEXTJMP CYCLENEXT: PUSH DXMOV DL,0INT 21HMOV DL,186 ;显示表格最右边边线INT 21H| 微型计算机原理实验报告 3MOV DL,0DH ;回车换行INT 21HMOV DL,0AHINT 21HPOP DXJMP LINEDISP PROCPUSH DXMOV DL,0INT 21HMOV DL,179INT 21HMOV DL,0INT 21HPOP DXRETDONE: MOV DL,0INT 21HMOV DL,186INT 21HLEA DX,DAT3MOV AH,9INT 21HLEA DX,DAT4INT 21HMOV AH,4CHINT 21HCODE ENDSEND START结果如图所示:4微型计算机原理实验报告|| 微型计算机原理实验报告 5。

【VBA实例026】输出ASCII码表

【VBA实例026】输出ASCII码表

【VBA实例026】输出ASCII码表例026输出ASCII码表1.案例说明⽬前计算机中⽤得最⼴泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码。

ASCII 码由8位⼆进制组成,⼀共可包含 256个符号。

本例使⽤循环语句输出ASCII中.的可见字符,如图所⽰。

2.关键技术使⽤Do..Loop 循环时,可以不知道循环的具体次数。

如果知道循环的次数,可以使⽤For..Next循环语句来执⾏循环。

For 循环的语法如下:For循环变量=初始值To终值[step 步长值]语句序列1[Exit For][语句序列2]Next [循环变量]在For循环中使⽤循环变量来控制循环,每重复⼀次循环之后,循环变量的值将与步长值相加。

步长值可正可负,如果步长值为正,则初始值必须⼩于等于终值,才执⾏循环体,否则退出循环。

如果步长值为负,则初始值必须⼤于等于终值,这样才能执⾏循环体。

如果没有设置Step,则步长值默认为1。

For-Next 循环结构的流程图如图3-28所⽰。

For循环⼀般都可计算出循环体的执⾏次数,计算公式如下:循环次数=[(终值- 初值) /步长值]+1这⾥⽤中括号表⽰取整。

在事先不知道循环体需要执⾏多少次时,应该⽤Do循环。

⽽在知道循环体要执⾏的次数时,最好使⽤For...Next循环。

3.编写代码(1) 新建Excel⼯作簿,按快捷键“Alt+F11”进⼊VBE环境。

(2)单击菜单“插⼊/模块”命令向⼯程中插⼊-⼀个模块。

(3)在模块中编写以下⼦过程:Sub ASCII()Dim a, i As Integeri = 2For a = 32 To 126Cells(i, 1) = aCells(i, 2) = Chr(a)i = i + 1NextEnd Sub(4)返回Excel操作环境,向⼯作表中插⼊-⼀个按钮,为按钮指定执⾏上步创建的宏。

(5)单击按钮,得到如图所⽰的结果。

ASCII码表完整版(带16进制)

ASCII码表完整版(带16进制)

ASCII 码表完整版ASCII 值控制字符 ASCII 值控制字符 ASCII 值控制字符 ASCII值控制字符0NUT32(space)64@96、1SOH33!65A97a 2STX34”66B98b 3ETX35#67C99c 4EOT36$68D100d 5ENQ37%69E101e 6ACK38&70F102f 7BEL39,71G103g 8BS40(72H104h 9HT41)73I105i 10LF42*74J106j 11VT43+75K107k 12FF44,76L108l 13CR45-77M109m 14SO46.78N110n 15SI47/79O111o 16DLE48080P112p 17DCI49181Q113q 18DC250282R114r 19DC351383X115s 20DC452484T116t 21NAK53585U117u 22SYN54686V118v23TB55787W24CAN56888X25EM57989Y26SUB58:90Z27ESC59;91[28FS60<92/29GS61=93]30RS62>94^31US63?95—NUL 空VT 垂直制表SOH 标题开始FF走纸控制ETB STX正文开始CR回车CAN ETX正文结束SO移位输出EM EOY传输结束SI移位输入SUB ENQ询问字符DLE空格ESC ACK承认DC1设备控制 1FS BEL报警DC2设备控制 2GS BS退一格DC3设备控制 3RS HT横向列表DC4设备控制 4US LF换行NAK否定DEL119w 120x 121y 122z 123{ 124| 125} 126~ 127DEL SYN 空转同步信息组传送结束作废纸尽换置换码文字分隔符组分隔符记录分隔符单元分隔符删除0~ 32 及 127( 共 34 个) 是控制字符或通讯专用字符(其余为可显示字符),如控制符:LF(换行)、 CR(回车)、 FF(换页)、 DEL(删除)、 BS(退格 ) 、BEL(振铃)等;通讯专用字符:SOH(文头)、 EOT(文尾)、ACK(确认)等; ASCII 值为 8 、9、10 和 13 分别转换为退格、制表、换行和回车字符。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验题目_用表格形式显示ASCII字符SMASCII _ 一、实验目的
学习用汇编语言设计与编写循环程序
二、实验要求
按15行X16列的表格形式显示ASCII码为10H一100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。

每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII为0)隔开。

三、实验提示
(1)显示每个字符可使用功能号为02 的显示输出功能调用,使用方法如下:
mov ah,02h mov dl,输出字符的ASCII 码int 21h
(2)显示空白符时,用其ASCII 码0 置入dl 寄存器。

每行结束时,用显示回车(ASCII 为0dh)和换行符(ASCII为0ah)来结束本行并开始下一行。

(3)由于逐个显示相继的ASCII 字符时,需要保存并不断修改dl 寄存器的内容,而显示空白、回车、换行符时也需要使用dl寄存器,为此可使用堆栈来保存相继的ASCII字符。

具体用法是:在显示空包或回车、换行符前用指令
Push dx
把dl 的内容保存到堆栈中去。

在显示空白或回车、换行符后用指令
Pop dx
恢复dl 寄存器的原始内容。

四、实验程序
program SEGMENT
main PROC FAR
ASSUME CS:program
start:
MOV AH,02h
MOV DL,10h;设置初始输出为ASCII的10h
MOV BL,15;输出显示为15行
let0:
MOV CX,16 ;设置循环次数,16表示输出显示为16列let1:
INT21h;显示输出
PUSH DX ;推入堆栈
MOV AH,02h
MOV DL,0
INT21h
MOV AH,02h
MOV DL,0
INT21h;显示空白符
POP DX ;将栈顶元素推出
INC DL;设置下一个元素
LOOP let1 ;循环输出每行的16个ASCII元素
PUSH DX;将下一行的首元素推入堆栈
MOV AH,02h
MOV DL,0dh
INT21h
MOV AH,02h
MOV DL,0ah
INT21h;输出换行
POP DX;将栈顶元素推出
DEC BL
CMP BL,0;比较确定是否已经输出15行元素
JNE let0 ;若还未完成输出,则跳转至e,继续进行下一行元素的输出JE exit ;否则退出程序
exit:
MOV AH,01h
INT21h
MOV AX,4ch
INT21h
main ENDP
program ENDS
END start
五、调试结果。

相关文档
最新文档