用汇编语言编写代码满足除了8行三列到8行10列不铺,其它在屏幕上的位置都铺满#
时间: 2024-02-20 08:00:56 浏览: 28
下面是一份参考代码(适用于 80x25 的文本模式):
```
mov ah, 00h ; 设置视频模式
mov al, 03h
int 10h
mov ah, 03h ; 获取屏幕列数和行数
int 10h
mov cx, ax ; cx 存储列数
mov dx, bx ; dx 存储行数
mov ah, 09h ; 将 # 字符写入到当前位置
mov al, 23h
mov bh, 0
mov bl, 07h
mov cx, 1
mov dh, 0 ; 行数从 0 开始
loop_rows:
mov dl, 0 ; 列数从 0 开始
loop_cols:
cmp dh, 8 ; 如果行数等于 8
je check_col ; 跳转到检查列的部分
int 10h ; 将 # 字符写入到当前位置
inc dl ; 列数加 1
cmp dl, cx ; 如果列数等于屏幕列数,跳出循环
jge end_cols
jmp loop_cols
check_col:
cmp dl, 3 ; 如果列数等于 3
je skip_pos ; 跳过该位置
cmp dl, 10 ; 如果列数等于 10
je skip_pos ; 跳过该位置
int 10h ; 将 # 字符写入到当前位置
inc dl ; 列数加 1
cmp dl, cx ; 如果列数等于屏幕列数,跳出循环
jge end_cols
jmp loop_cols
skip_pos:
inc dl ; 列数加 1
cmp dl, cx ; 如果列数等于屏幕列数,跳出循环
jge end_cols
jmp loop_cols
end_cols:
inc dh ; 行数加 1
cmp dh, dx ; 如果行数等于屏幕行数,跳出循环
jge end_rows
jmp loop_rows
end_rows:
```
代码的思路是先铺满整个屏幕,然后在循环遍历每个位置时,检查当前位置是否为 8 行 3 列到 8 行 10 列之间的位置,如果是则跳过该位置,否则将 # 字符写入到当前位置。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)