0
我使用這個代碼打印線寬動態寬度:使用dup()重複X次字符?
mov cx, width
sep_1:
PRINT '-'
loop sep_1
對於我的理解應該可以做這樣的事情,但是我沒有設法使其工作:
move ax, width
CALL PTHIS
DB 13, 10, ax dup('-'), 0
是否有可能使其縮短?
我使用這個代碼打印線寬動態寬度:使用dup()重複X次字符?
mov cx, width
sep_1:
PRINT '-'
loop sep_1
對於我的理解應該可以做這樣的事情,但是我沒有設法使其工作:
move ax, width
CALL PTHIS
DB 13, 10, ax dup('-'), 0
是否有可能使其縮短?
您的第一個代碼是正確的方法。宏在裝配過程中展開,在運行時不能使用「dup」宏,因此方法2不正確。
火災「-----」到ES:DI
mov ax,"-"
mov cx,5
rep stosb
不能使用運行時表達式等的寄存器值作爲操作數以'dup'。 「dup」的計數需要在彙編程序運行時進行評估。 –
那麼沒有辦法縮短它?我真的需要縮短它,因此每條線都很重要。 – lisovaccaro
可能有,但不是這樣。 'dup()'是彙編器的指令,而不是CPU。 – duskwuff