• 北工大汇编——子程序设计


    题目要求

    完成一个字母或数制之间的转化程序,主程序分别具有 5种可选择的子功能,按相应的宇符可分别进入相应的子功能并在屏幕上显示结果,按“q”键退出。子功能分别为: 1) 实现小写字母向大写字母的转换;2)实现大写字母向小写字母的转换;3)实现二进制数向十六进制数的转换;4)实现十六进制数向二进制数的转换:5)实现十六进制数向十进制数的转换。

    在这里插入图片描述

    完整代码

    DATAS SEGMENT
        ;此处输入数据段代码
        msg DB 'please input 1-5 q:quit$'  
    DATAS ENDS
    
    STACKS SEGMENT
        ;此处输入堆栈段代码
    STACKS ENDS
    
    CODES SEGMENT
        ASSUME CS:CODES,DS:DATAS,SS:STACKS
    START:
        MOV AX,DATAS
        MOV DS,AX
        ;此处输入代码段代码
        LOP:
    	    MOV AH, 1 
    	    INT 21H
    	
    	    CMP AL, 'q'
    	    JZ EXIT
    	
    	    CMP AL, '1' 
    	    JB Err
    	    CMP AL, '5'
    	    JA Err
    	
    	    SUB AL, 30H
    	    MOV BX, AX
    	    
    	    CMP AL,1
    		JE FUNC1
    		CMP AL,2
    		JE FUNC2
    		CMP AL,3
    		JE FUNC3
    		CMP AL,4
    		JE FUNC4
    		CMP AL,5
    		JE FUNC5 
        JMP LOP
        
        
        
        FUNC1:
        	MOV DL, 0DH;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
    	    
        	MOV AH, 1 
        	INT 21H
        	
        	CMP AL, 'a'
        	JB LOP
        	CMP AL, 'z'
        	JA LOP
        	
        	sub AL, 32
        	
        	MOV DL,AL
    		MOV AH,02H
    		INT 21H
    		
    		MOV DL, 0DH ;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
        JMP LOP
        
        
        
        FUNC2:
        	MOV DL, 0DH;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
    	    
        	MOV AH, 1 
        	INT 21H
        	
        	CMP AL, 'A'
        	JB LOP
        	CMP AL, 'Z'
        	JA LOP
        	
        	add AL, 32
        	
        	MOV DL,AL
    		MOV AH,02H
    		INT 21H
    		
    		MOV DL, 0DH ;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
        JMP LOP
        
        
        
        FUNC3:
        	MOV DL, 0DH;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
    	    
    	    MOV DL, 0
    	    MOV CL, 4
    	    
    	    FUNC3INPUT:
    	    	MOV AH, 1 
    	    	INT 21H
    	    	
    	    	CMP AL, '0'
    	    	JB LOP
    	    	CMP AL, '1'
    	    	JA LOP
    	    	
    	    	JE FUNC3LOP1
    	
    	    	ROL DL,1
    			OR DL,0
    			
    			JMP FUNC3LOP2
    			
    		FUNC3LOP1:
    			ROL DL,1
    			OR DL,1
    			
    		FUNC3LOP2:
    			DEC CL
    			CMP CL, 0
    			JE FUNC3DISPLAY
    			JMP FUNC3INPUT
    			
    		FUNC3DISPLAY:
    			MOV CL, DL
    			MOV DL, 0DH;回车换行
    		    MOV AH, 02
    		    INT 21H
    		    MOV DL, 0AH
    		    MOV AH, 02
    		    INT 21H
    		    
    		    MOV DL, CL
    		
    			CMP DL, 0
    			JB LOP
    			CMP DL, 9
    			JA FUNC3LOP3
    			
    			ADD DL, '0'
    			
    			JMP FUNC3LOP4
    		
    		FUNC3LOP3:
    			ADD DL, 37H
    			
    		FUNC3LOP4:
    			MOV AH,02H
    			INT 21H
    		
    		MOV DL, 0DH;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
        JMP LOP
        
        
        
        
        FUNC4:
        	MOV DL, 0DH;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
    	    
    	    FUNC4INPUT:
    	    	MOV AH, 1
    	    	INT 21H
    	    	
    	    	CMP AL, '0'
    	    	JB LOP
    	    	CMP AL, '9'
    	    	JA FUNC4CMP
    	    	
    	    	SUB AL, '0'
    	    	MOV CH,8
    			MOV BL,AL
    	    	JMP FUNC4PRINT
    	    	
    	    FUNC4CMP:
    	    	CMP AL, 'a'
    	    	JB LOP
    	    	CMP AL, 'f'
    	    	JA LOP
    	    	
    	    	SUB AL, 'a'
    	    	ADD AL, 10
    	    	MOV CH,8
    			MOV BL,AL
    	    	JMP FUNC4PRINT
    	    	
    	    FUNC4PRINT:
    	    	ROL BL, 1
    	    	MOV DL, BL
    	    	AND DL,1
    			ADD DL, '0'
    			
    			MOV AH,02H
    			INT 21H
    			
    		 	DEC CH
    			JZ LOPPRINT
    			JMP FUNC4PRINT
    		
    	LOPPRINT:
    		MOV DL, 0DH;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
        JMP LOP
        
        
        
        
        FUNC5:
        	MOV DL, 0DH;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
    	    
    	    FUNC5INPUT:
    	    	MOV AH, 1
    	    	INT 21H
    	    	
    	    	CMP AL, '0'
    	    	JB LOP
    	    	CMP AL, '9'
    	    	JA FUNC5CMP
    	    	
    	    	SUB AL, '0'
    	    	MOV CH,8
    			MOV BL,AL
    	    	JMP FUNC5PRINT
    	    	
    	    FUNC5CMP:
    	    	CMP AL, 'a'
    	    	JB LOP
    	    	CMP AL, 'f'
    	    	JA LOP
    	    	
    	    	SUB AL, 'a'
    	    	ADD AL, 10
    	    	MOV CH,8
    			MOV BL,AL
    	    	JMP FUNC5PRINT
    	    	
    	    FUNC5PRINT:
    			MOV AH, 0
    			MOV BL, 10
    			DIV BL
    			
    			MOV DH, AH
    			CMP AL, 0
    			JE NOTEN
    			
    			MOV DL,AL      
    			ADD DL, '0'
    			
    			MOV AH,02H
    			INT 21H
    			
    		NOTEN:	                        
    			MOV DL,DH
    			ADD DL,'0'
    			MOV AH,02H
    			INT 21H
    			
    		MOV DL, 0DH;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
        JMP LOP
    	
    	ERR:
    	    MOV DL, 0DH ;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
    	    
    	    MOV DX, OFFSET msg
    	    MOV AH, 09
    	    INT 21H
    	    
    	    MOV DL, 0DH ;回车换行
    	    MOV AH, 02
    	    INT 21H
    	    MOV DL, 0AH
    	    MOV AH, 02
    	    INT 21H
    	    
    	    JMP LOP
    	
    	EXIT:
    	    MOV AH,4CH
    	    INT 21H
    CODES ENDS
        END START
    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
    • 324
    • 325
    • 326
    • 327
    • 328
    • 329
    • 330
    • 331
    • 332
    • 333
    • 334
    • 335
    • 336
  • 相关阅读:
    1996-2023年各省农林牧渔总产值及农业、林业、牧业、渔业总产值数据(无缺失)
    败给 VS Code,GitHub 被微软收购的第四年,“杀死”了代码编辑器 Atom
    视觉目标检测大模型套件detrex-调研
    第一章 Linux及Linux Shell简介
    安卓:解决AndroidStudio导出Unity的Apk(APP)出现2个显示图标
    js数据类型、节流/防抖、点击事件委派优化、过渡动画
    沁恒CH32V103C8T6开发环境笔记
    猿创征文|多模态图像合成和编辑(MISE):Multimodal Image Synthesis and Editing: A Survey
    Splunk UBA 数据导入中可以接受的告警
    Ubuntu快速搭建内网NTP Server
  • 原文地址:https://blog.csdn.net/m0_60867520/article/details/132982140